Linux crontab任務調度
一、crontab說明
Linux crontab任務調度是在規定的時間頻率內去執行相應的任務。
二、crontab文件詳情
1、crontab文件在Linux中的/etc/crontab
2、查看crontab文件 # vi /etc/crontab 文件描述如下
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# 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
# | | | | |
# * * * * * user-name command to be executed
三、crontab 命令說明
crontab [-u username] [-l|-e|-r]
參數:
-u: 只有root才能進行這個任務,也即幫其他用戶新建/刪除crontab工作調度;
-e: 編輯crontab 的工作內容;
-l: 查閱crontab的工作內容;
-r: 刪除所有的crontab的工作內容,若僅要刪除一項,請用-e去編輯。
特殊字符 | 代表意義 |
*(星號) | 代表任何時刻都接受的意思。舉例來說,範例一內那個日、月、周都是*,就代表著不論何月、何日的禮拜幾的12:00都執行後續命令的意思。 |
,(逗號) |
代表分隔時段的意思。舉例來說,如果要執行的工作是3:00與6:00時,就會是: 0 3,6 * * * command 時間還是有五列,不過第二列是 3,6 ,代表3與6都適用 |
-(減號) | 代表一段時間範圍內,舉例來說,8點到12點之間的每小時的20分都進行一項工作:
20 8-12 * * * command 仔細看到第二列變成8-12.代表 8,9,10,11,12 都適用的意思 |
/n(斜線) | n代表數字,即是每隔n單位間隔的意思,例如每五分鐘進行一次,則:
*/5 * * * * command 用*與/5來搭配,也可以寫成0-59/5,意思相同 |
四、實例
crontab -e ;打開當前用戶調度編輯
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命令
最後感謝下面兩位博主的分享
Linux任務調度運行機制參考 http://blog.csdn.net/zhongbeida_xue/article/details/51280292
Linux任務調度操作參考 http://www.cnblogs.com/mingforyou/p/3930636.html
Linux crontab任務調度