Linux- 日常運維-任務計劃cron
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