1. 程式人生 > >Linux- 日常運維-任務計劃cron

Linux- 日常運維-任務計劃cron

任務計劃cron -o log minute blog ext img 目錄 分享圖片

cat /etc/crontab #任務計劃配置文件
SHELL=/bin/bash #
PATH=/sbin:/bin:/usr/sbin:/usr/bin #環境變量
MAILTO=root #郵件發送給誰

     # Example of job definition:                #任務計劃示例:
# .---------------- minute (0 - 59)            #分鐘
# |  .------------- hour (0 - 23)                #小時
# |  |  .---------- day of month (1 - 31)        #日期
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...            #月份,可以寫數字,也可以寫英文的簡寫
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat            #星期。0或者7表示周日,也可以寫成英文簡寫
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed       user-name #用戶,如果是在root下,定義的,默認就是root
###    command to be executed     表示需要執行的命令

技術分享圖片
去創建任務計劃: crontab -e 用法於vim一樣。
例如:有個任務,需要淩晨3點去執行。
0 3 /bin/bash /腳本路徑 >>tmp/123.log 2>tmp/123.log # 表示所有,表示每天的3點鐘去執行。
0 3 * /bin/bash /usr/local/sbin/123.sh >>tmp/123.log 2>tmp/123.log #每天早上的3點鐘,去執行 /usr/local/sbin下123.sh文件,正確日誌輸出到123.log,錯誤日誌也輸出到123.log中

可設置範圍:
分範圍0-59,時範圍0-23,日範圍1-31,月範圍1-12,周1-7
例如:
定義每月1-10號:
0 3 1-10 /bin/bash /usr/local/sbin/123.sh >>tmp/123.log 2>tmp/123.log #每月1-10號早上的3點鐘,去執行 /usr/local/sbin下123.sh文件,正確日誌輸出到123.log,錯誤日誌也輸出到

定義每兩個月:
0 3 1-10 /2 /bin/bash /usr/local/sbin/123.sh >>tmp/123.log 2>tmp/123.log #每月1-10號早上的3點鐘,去執行 /usr/local/sbin下123.sh文件,正確日誌輸出到123.log,錯誤日誌也輸出到 # /2 表示雙月份,例如2月,4月.... 也就是每兩個月

定義周二和周五
0 3 1-10 * 2,5 /bin/bash /usr/local/sbin/123.sh >>tmp/123.log 2>tmp/123.log #每月1-10號早上的3點鐘,去執行 /usr/local/sbin下123.sh文件,正確日誌輸出到123.log,錯誤日誌也輸出到 # 2,5 表示周二和周五

要想執行這個任務計劃,則需要保證服務啟動: systemctl start crond.service

ps -ef | grep crond #查看服務是否啟動
或者 : systemctl status crond
綠色表示服務在運行
技術分享圖片

如果出現未執行的情況,要麽給命令加一個絕對路徑,要麽將路徑加入到變量裏面去,建議沒寫一個任務,加上日誌。

crontab -l #自動備份腳本文件 可以直接復制目錄,進行備份
文件/var/spool/cron/username #備份的文件路徑,裏面的文件,如果屬於root,可以看到root的,如果是user1就可以看到user1

crontab -e #編輯任務計劃
crontab -l #列出任務計劃
crontab -r #刪除
crontab -u root -l #指定一個用戶

可用於清理挖礦病毒

Linux- 日常運維-任務計劃cron