1.格式寫法
常用命令
crontab -e #打開編輯計劃任務,和用vim工具一樣
crontab -l #查看計劃任務
2.實例
每月每天每小時的第 0 分鐘執行一次 /bin/ls
0 * * * * /bin/ls
在 12 月內, 每天的早上 6 點到 12 點,每隔 3 個小時 0 分鐘執行一次 /usr/bin/backup
0 6-12/3 * 12 * /usr/bin/backup
週一到週五每天下午 5:00 寄一封信給 [email protected]
0 17 * * 1-5 mail -s "hi" [email protected] < /tmp/maildata
每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....執行 echo "haha"
20 0-23/2 * * * echo "haha"
下面再看看幾個具體的例子:
0 */2 * * * /sbin/service httpd restart 意思是每兩個小時重啓一次apache
50 7 * * * /sbin/service sshd start 意思是每天7:50開啓ssh服務
50 22 * * * /sbin/service sshd stop 意思是每天22:50關閉ssh服務
0 0 1,15 * * fsck /home 每月1號和15號檢查/home 磁盤
1 * * * * /home/bruce/backup 每小時的第一分執行 /home/bruce/backup這個文件
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 每週一至週五3點鐘,在目錄/home中,查找文件名爲*.xxx的文件,並刪除4天前的文件。
30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30執行一次ls命令
運行腳本實例
#表示每1分鐘運行一次腳本,注意腳本路徑寫決定路徑且要給腳本X 運行權限,
/dev/null 表示把腳本所產生的輸出無論是標準的還是錯誤的全部送給 null 設備,不看
& 最後帶個 & 表示後臺運行,寫開機自啓腳本時候建議 加 &
3.查看日誌
tail -f /var/log/cron #監控日誌 "/var/log/cron" 是crontab的日誌路徑
#從日誌裏能看出,每分鐘的第一秒,該腳本都會被執行一次。
4. 2>&1 幾個基本符號及其含義
/dev/null 表示空設備文件
0 表示stdin標準輸入
1 表示stdout標準輸出
2 表示stderr標準錯誤
對於2>&1的理解,2就是標準錯誤,1是標準輸出,那麼這條命令不就是相當於把標準錯誤重定向到標準輸出
案例1,重定向錯誤輸出到文件裏
案例2 標準錯誤輸出都重定向到文件
案例3 錯誤輸出重定向到標準輸出
#nginx -V 是錯誤輸出,而grep 是不處理 錯誤輸出的,這樣我們找模塊就比較麻煩了
#我把語句改了一下 把錯誤輸出都輸出到標準裏,這樣grep 就能處理了