crontab是什么?
???crontab服務(wù)是linux系統(tǒng)下的一個(gè)周期性的定時(shí)任務(wù)執(zhí)行機(jī)制咏窿。常見的使用當(dāng)中砖第,我們可以通過crontab來自動(dòng)完成備份數(shù)據(jù)庫撤卢,比如每天凌晨三點(diǎn)執(zhí)行。
crontab格式
格式分為六段組成梧兼,分別為:分鐘放吩、小時(shí)、天羽杰、月渡紫、星期、命令考赛。前五段描述執(zhí)行的時(shí)間惕澎,最后一段描述執(zhí)行的命令。
分鐘:是0-59之間的整數(shù)欲虚。
小時(shí):是0-23之間的整數(shù)集灌。
天:是1-31之間的整數(shù)。
月份:是1-12之間的整數(shù)复哆。
星期:是0-7之間的整數(shù)欣喧,這里0或者7,都代表星期日梯找。
以上描述中唆阿,還可以使用如下幾個(gè)符號(hào)。
*?:星號(hào)锈锤,代表可能的值驯鳖,如果小時(shí)為*,表示在滿足其它時(shí)間描述后久免,每小時(shí)都執(zhí)行此操作浅辙。
,?:逗號(hào),用逗號(hào)隔開取值范圍阎姥,如分鐘段為"0,30"记舆,表示整點(diǎn)和半點(diǎn)時(shí)執(zhí)行任務(wù)。
- :橫杠呼巴,代表取值范圍泽腮。如月份為“1-6”,則表示滿足其它約束后衣赶,每年前6個(gè)月執(zhí)行此操作诊赊,同“1,2,3,4,5,6”。
/ :斜杠府瞄,表示同時(shí)段的時(shí)間間隔碧磅。如分鐘為“*/5”,表示每五分鐘執(zhí)行一次。
crontab怎么查看鲸郊?
????在linux中敲街,每個(gè)用戶都有自己的crontab執(zhí)行任務(wù)。拿root用戶來說严望,查看當(dāng)前定時(shí)任務(wù)多艇,可以輸入:crontab -l,如下:
圖1
上面圖1中像吻,通過執(zhí)行“crontab -l”命令峻黍,可以查看到有三個(gè)定時(shí)任務(wù)正在執(zhí)行。
第一個(gè)任務(wù):每20分鐘執(zhí)行依次拨匆。
第二個(gè)任務(wù):每分鐘執(zhí)行一次姆涩,執(zhí)行檢查需要推送的信息。
第三個(gè)任務(wù):每天凌晨3:00執(zhí)行惭每,執(zhí)行備份數(shù)據(jù)庫的shell腳本骨饿。
crontab怎么編輯?
???輸入“crontab -e”,進(jìn)入文本模式台腥。在案按下“i鍵”或者“insert鍵”宏赘,進(jìn)入編輯模式。與我們的vi或者vim編輯文本模式相同黎侈。保存編輯按esc->:>wq察署。保存后需要重新啟動(dòng)crontab執(zhí)行。重啟命令"service crond restart"峻汉。
crontab與環(huán)境變量贴汪?
因?yàn)閳?zhí)行crontab命令不像日常連接linux主機(jī),在命令行中直接執(zhí)行休吠,會(huì)啟動(dòng)相應(yīng)的環(huán)境變量扳埂,如php、mysql等瘤礁,所以在crontab中執(zhí)行阳懂,寫在crontab文件里的程序,需要輸入全路徑:
如php應(yīng)該輸入 /usr/local/php7/bin/php(當(dāng)前環(huán)境舉例)
#正常情況#
啟動(dòng)任務(wù):service crond start
關(guān)閉任務(wù):service crond stop
重啟任務(wù):service crond restart
查看狀態(tài):service crond status