crontab命令常見于Unix和類Unix的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。通俗來講就是執(zhí)行定時(shí)任務(wù)的一個(gè)命令。
1.crontab的安裝以及服務(wù)的開啟
第一步:檢查你得服務(wù)器上是否安裝了crontab
rpm -qa | grep crontab
若沒有,首先就在服務(wù)器上安裝
apt-get install cron
第二步:開啟定時(shí)任務(wù)
運(yùn)行:crontab –e
然后進(jìn)入一個(gè)可編輯的文件,編寫定時(shí)任務(wù):
*/1 * * * * /usr/bin/python /python/asch-check.py
以上代碼的寓意為:表示1分鐘執(zhí)行一次asch-check.py腳本
第三步:啟動(dòng)服務(wù)
service cron start
第四步:查看定時(shí)任務(wù)
crontab -l #查看定時(shí)任務(wù)
2.安裝日志服務(wù)rsyslog
第一步:安裝 rsyslog
apt-get install rsyslog
第二步:啟動(dòng)日志
service rsyslog start
第三步:編輯設(shè)置
vi /etc/rsyslog.d/50-default.conf cron.* /var/log/cron.log #將cron前面的注釋符去掉
第四步:重啟
service rsyslog restart
第五步:查看cron運(yùn)行任務(wù)和日志:
crontab -l #查看定時(shí)任務(wù)
等到時(shí)間到了之后,發(fā)現(xiàn)定時(shí)任務(wù)未執(zhí)行
tail -f?/var/log/cron.log? 查看日志
3.cron常用的命令
crontab file [-u user]-用指定的文件替代目前的crontab。?
crontab-[-u user]-用標(biāo)準(zhǔn)輸入替代目前的crontab.?
crontab-1[user]-列出用戶目前的crontab.?
crontab-e[user]-編輯用戶目前的crontab.?
crontab-d[user]-刪除用戶目前的crontab.?
crontab-c dir- 指定crontab的目錄。
eg:
service cron start //啟動(dòng)服務(wù)
service cron stop //關(guān)閉服務(wù)
service cron restart //重啟服務(wù)
service cron reload //重新載入配置
service cron status //查看crontab服務(wù)狀態(tài)
crontab –l //查看定時(shí)任務(wù)
?
4.常用的周期格式
每五分鐘執(zhí)行 */5 * * * * 每小時(shí)執(zhí)行 0 * * * * 每天執(zhí)行 0 0 * * * 每周執(zhí)行 0 0 * * 0 每月執(zhí)行 0 0 1 * * 每年執(zhí)行 0 0 1 1 * 每分鐘執(zhí)行一次 * * * * * user command 每隔2小時(shí)執(zhí)行一次**/2 ** * user command (/表示頻率) 每天8:30分執(zhí)行一次308 * * * user command 每小時(shí)的30和50分各執(zhí)行一次 30,50 * * * * user command(,表示并列) 每個(gè)月的3號(hào)到6號(hào)的8:30執(zhí)行一次 30 8 3-6 * * user command (-表示范圍) 每個(gè)星期一的 8:30 執(zhí)行一次 30 8 * * 1 user command (周的范圍為0-7,0和7代表周日)
eg:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ? #每晚的21:30重啟apache。?
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart ? #每月1、10、22日的4 : 45重啟apache。?
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ?#每周六、周日的1 : 10重啟apache。?
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart ? ?#每天18 : 00至23 : 00之間每隔30分鐘重啟apache。?
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ? ? ?#每星期六的11 : 00 pm重啟apache。?
0 */1 * * * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ? ? ? #每一小時(shí)重啟apache?
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? #晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟apache?
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart ?#每月的4號(hào)與每周一到周三的11點(diǎn)重啟apache?
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ? ? ? #一月一號(hào)的4點(diǎn)重啟apache?
?5.特殊字符的含義
特殊字符: 星號(hào)(*):代表’‘每’'的意思,例如month字段如果是星號(hào),則表示每月都執(zhí)行該命令。 逗號(hào)(,):表示分隔時(shí)段的意思,例如,“1,3,5,7,9”。 中杠(-):表示一個(gè)時(shí)間范圍,例如“2-6”表示“2,3,4,5,6”。 正斜線(/):可以用正斜線指定時(shí)間的間隔頻率,例如“0-23/2”表示每兩小時(shí)執(zhí)行一次。同時(shí)正斜線可以和星號(hào)一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次。
?
本文摘自 :https://www.cnblogs.com/