crontab是unix和linux用於設定週期性被執行的指令,是網際網路很常用的技術,很多任務都會設定在crontab迴圈執行,如果不使用crontab,那麼任務就是常駐程式,這對你的程式要求比較高,乙個要求你的程式是24x7小時不宕機,乙個是要求你的排程程式比較可靠,實際工作中,90%的程式都沒有必要花這麼多時間和精力去解決上面的兩個問題的,只需要寫好自己的業務邏輯,通過crond這個工業級程式去排程就行了,crond的可靠性,健壯性,大家應該是毫無疑問的。
crontab [-u username] [-l|-e|-r]選項與引數:
-u :只有 root 才能進行這個任務,亦即幫其他使用者建立/移除 crontab 工作排程;
-e :編輯 crontab 的工作內容
-l :查閱 crontab 的工作內容
crontab -e
# 此時會進入 vi 的編輯畫面讓您編輯工作!注意到,每項工作都是一行。
# 分 時 日 月 周 |<**********====任務的完整命令列
* * * * *
當使用者使用 crontab 這個命令來建立工作排程之後,該項工作就會被紀錄到 /var/spool/cron/ 裡面去了,而且是以帳號來作為判別的喔!舉例來說, blue 使用 crontab 後, 他的工作會被紀錄到 /var/spool/cron/blue 裡頭去!但請注意,不要使用 vi 直接編輯該檔案, 因為可能由於輸入語法錯誤,會導致無法執行 cron 喔!另外, cron 執行的每一項工作都會被紀錄到 /var/log/cron 這個登入檔中,所以羅,如果你的 linux 不知道有否被植入木馬時,也可以搜尋一下 /var/log/cron 這個登入檔呢!
crond服務的最低偵測限制是『分鐘』,所以『 cron 會每分鐘去讀取一次 /etc/crontab 與 /var/spool/cron 裡面的資料內容 』,因此,只要你編輯完 /etc/crontab 這個檔案,並且將他儲存之後,那麼 cron 的配置就自動的會來執行了!
備註:在 linux 底下的 crontab 會自動的幫我們每分鐘重新讀取一次 /etc/crontab 的例行工作事項,但是某些原因或者是其他的 unix 系統中,由於 crontab 是讀到記憶體當中的,所以在你修改完 /etc/crontab 之後,可能並不會馬上執行, 這個時候請重新啟動 cron 這個服務吧!『/etc/init.d/cron restart』
每項工作 (每行) 的格式都是具有六個字段,這六個欄位的意義為:
代表意義
分鐘小時
日期月份周命令
數字範圍
0-59
0-23
1-31
1-12
0-7就命令啊
比較有趣的是那個『周』喔!周的數字為 0 或 7 時,都代表『星期天』的意思!另外, 還有一些輔助的字元,大概有底下這些:
特殊字元
代表意義
*(星號)
代表任何時刻都接受的意思!舉例來說,如果日、月、週都是 * , 就代表著『不論何月、何日的禮拜幾都執行後續命令』的意思!
,(逗號)
代表分隔時段的意思。舉例來說,如果要下達的工作是 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入門及高階學習筆記
crontab不是通常意義下的linux指令,它更是乙個配置工具。通過這個工具,我們可以為系統定製固定週期的任務。1 crond和crontab 1 crond cron服務的守護程序,用於定期排程。2 crontab指令 crontab l 顯示已有定期排程任務。3 cron任務格式 使用cron...
linux 定時器怎麼用 crontab 基礎
建立定時器 檢視 crontab l 建立 crontab e 每分鐘輸出一次當前時間 echo date demo.log 檢視定時 cat etc crontab shell bin bash path sbin bin usr sbin usr bin mailto for details s...
linux 定時器怎麼用 crontab 基礎
建立定時器 檢視 crontab l 建立 crontab e 每分鐘輸出一次當前時間 echo date demo.log 檢視定時 cat etc crontab shell bin bash path sbin bin usr sbin usr bin mailto for details s...