Linux的排程工作 cron

有些時候我們會需要linux幫我們定時的去處理一些循環要做的事情,例如清掉log檔案啦~備份啦~~之類的瑣事。
如果說都要人工去處理,通常一定都會忘記,所以我們要建立排程工作讓系統自動執行。
在linux上的排程工作是一個叫做cron的服務通常系統會預先開啟。不過我們也可以手動先去開啟
service crond start

不過一開始這個東西你執行了也沒用,因為這個服務他會每分鐘查找一個叫做crontab的檔案這個檔案就是用來記錄要執行動作的時間和動作
要編輯這個檔案你只要執行這個指令
crontab -e
他就會進入vi的模式中讓你進行編輯(一開始當然會是空空的),每一行就代表一件你要處理的排程工作,格式如下:
分 時 日 月 週 指令
就這麼簡單的格式,他最小的單位可以支援到每分鐘執行,就如同剛剛提到的因為他每分鐘會查一次這個檔案瞜!
要注意的是,每個欄位都是必填的,假設你要讓這個指令在每小時的20分都執行一次你就輸入成:
20 * * * * 動作
我習慣倒著看這張表:他的意思就是執行動作在每個小時的20分,*這個符號代表通用所以如果你要做到每分鐘都執行一次的話就會變成* * * * * 動作
或者你可以用半型逗號(,)來設定一個欄位執行多次
0,10,20,30,40,50 * * * * 動作
上面這段就會讓系統變成每十分鐘執行一次,如果你的週期間隔時間固定你也可以寫成
*/10 * * * * 動作
其中斜線(/)的意思就是作為間隔時間的設定,當我們都編輯完成後在vi中儲存就完成編輯的動作了。
不過就如同其他的系統服務,在修改過後請記得重新啟動這樣設定檔才會馬上被套用
service crond restart

留言

這個網誌中的熱門文章

讓 PHP 接收 post 的 json 資料

解決PHP JSON 中文亂碼的問題

PHPExcel 用PHP匯出成EXCEL