crontab不是通常意義下的linux指令,它更是乙個配置工具。通過這個工具,我們可以為系統定製固定週期的任務。
1、crond和crontab
1) crond:cron服務的守護程序,用於定期排程。
2、crontab指令:
crontab –l:顯示已有定期排程任務。
3、cron任務格式:
使用crontab –e編輯定期排程任務時,實際上可以理解為編輯乙個配置檔案,通過這個檔案定義要執行哪些定期任務,執行的週期如何。
編輯過程可以理解為:進入vi編輯介面,以乙個工作代表一行來編輯,然後輸入「:wq」儲存即可。每項工作(每行)具有六個字段,各欄位意義如下表所示,六個字段依次表示分鐘、小時、天、月、周和要執行的shell命令。
代表意義分鐘
小時日期月份周
指令數字範圍
0-59
0-23
1-31
1-12
0-7指令
4、特殊字元的使用:
cron任務中,有時需要設定較為複雜的任務處理邏輯,此時可能會用到如下特殊字元:
特殊字元
代表意義
*(星號)
代表任何時候都接受。例如:30 10 * * * command中,day,month和week均為「*」,表示無論哪一天、哪個月、週幾,都在10點30分執行命令。
,(逗號)
代表多個並列時間。例如:* 3,6,9,12 * * * command,表示在3點,6點,9點或12點,執行命令。
-(減號)
代表連續區間。例如:* 9-17 * * * command,表示從9點到17點,每一分鐘都要執行這個任務。
/n(斜線)
代表每隔n個單位之間。例如:*/5 * * * * command,其中用*與/5來搭配,表示每隔5分鐘執行指令;也可以寫成 0-59/5 ,作用相同。
5、舉例:
>crontab –e #進入編輯介面
0 17 * * 5 mail all_members < weekily_report_notify
#每週一00:30統計上週的伺服器使用情況,結果儲存到以日期命名的檔案:
>crontab –e #進入編輯介面
30 0 * * 1 /home/get_server_usage.sh> server_usage_`date +"\%y\%m\%d"`.txt
#注意其中%的處理,需要在前面加反斜槓\進行轉義。
6、注意事項:
p.s.: crontab命令中的待執行指令碼最好使用絕對路徑。
p.s.: 「周」這一欄中0和7都代表週日。
p.s.: cron排程的最小頻率為1分鐘。
p.s.: 每個月的最後一日無法由crontab直接支援,需要通過指令碼判斷。
p.s.:如果crontab執行出錯,可以檢視日誌檔案/var/log/syslog,追溯問題。
Linux入門及高階學習推薦書籍
接觸linux也有一段時間了,因為習慣了windows的操作,剛開始對於ubuntu一點都不習慣,完全是各種不爽。記得剛接觸的時候,是看見朋友的電腦是ubuntu很酷的紅色桌面,於是自己也跟風,安裝了乙個ubuntu系統使用,結果使用之後才發現,ubtuntu真的不太適合初學者。為什麼這樣說呢?首先...
Linux入門及高階學習推薦書籍
接觸linux也有一段時間了,因為習慣了windows的操作,剛開始對於ubuntu一點都不習慣,完全是各種不爽。記得剛接觸的時候,是看見朋友的電腦是ubuntu很酷的紅色桌面,於是自己也跟風,安裝了乙個ubuntu系統使用,結果使用之後才發現,ubtuntu真的不太適合初學者。為什麼這樣說呢?首先...
深度學習入門 高階教程
神經網路和深度學習目前提供了針對影象識別,語音識別和自然語言處理領域諸多問題的最佳解決方案。傳統的程式設計方法中,我們告訴計算機如何去做,將大問題劃分為許多小問題,精確地定義了計算機很容易執行的任務。而神經網路不需要我們告訴計算機如何處理問題,而是通過從觀測資料中學習,計算出他自己的解決方案。自動地...