Linux計劃任務工具cron用法詳解

Linux計劃任務工具cron用法詳解


       linux下大名鼎鼎的計劃任務工具crontab的使用介紹baidu、google上多得讓人眼花繚亂,本着“天下文章一大抄”的覺悟,加上本人日常工作中總結的使用經驗,索性推出這篇筆記式文章,以供遺忘時翻閱之用。
       cron是linux系統下一個自動執行指定任務的程序,即包含“時間”、“路徑”、“自動執行腳本”等要素,例如我想通過自動執行腳本“newcopy.sh”在凌晨4點整將/usr/local/下的“new”目錄複製到/home下的“superman”目錄。
       cron程序在安裝系統後一般會自動隨系統啓動,無需每次人手啓動,若無意中將其自啓動取消了,可以通過ntsysv或chkconfig將其添加到系統自啓動列表中,如下:

#ntsysv
在自啓動列表中選中crond即可




一、cron服務介紹

       cron把命令行保存在/etc/crontab文件裏,每個系統用戶如果設置了自己的cron,那都會在/var/spool/cron下面有對應用戶名的crontab。無論編寫/var/spool/cron目錄內的文件還是/etc/crontab文件,都能讓cron準確無誤地執行安排的任務,區別是/var/spool/cron下各系統用戶的crontab文件是對應用戶級別的的任務配置,而/var/crontab文件則是對應系統級別的任務配置。cron服務器每分鐘讀取一次/var/crontab/cron目錄內的所有文件和/etc/crontab文件。


二、使用cron服務執行計劃任務

#service crond start/restart/stop
啓動/重啓/關閉cron服務

#crontab -l
瀏覽當前用戶的crontab,即瀏覽已存在的計劃任務列表

#crontab -e
編輯當前用戶crontab,如之前從未編輯過crontab文件,那麼crontab是一個空白文件,我們可以完全手工編寫我們所需要的計劃任務列表,下面詳細介紹計劃任務列表的寫法。

以下是幾個例子:

1)9 9 * * * /usr/local/bin/cvsb
2)3 3 * * 0 /usr/local/bin/qbbak
3)* */6 * * * /usr/local/bin/esbbak
4)20,30 * * * /usr/local/bin/esbak
5)* 23 * * 2-5 /usr/local/bin/esbbak

六個字段對應的含義如下:
  9         9        *        *        *
分鐘     小時   日期   月份    星期

1)表示每天早上9點9分執行目錄/usr/local/bin/中的cvsb文件
2)表示每週日凌晨3時3分執行目錄/usr/local/bin中的qbbak文件
3)表示每6小時執行一次,執行時間從第一次執行起計算,當然也可以自定義執行時間,比如0 */6 * * *那程序就會在整點執行
4)表示在每小時20分和30分時執行
5)表示在星期二到星期五每天的23點執行

上面簡單介紹了cron的一些基本用法,這個東東的時間組合可不是一般的強~可以複雜到你無法想象,我們只要掌握少許基本就可以滿足日常需求了。


三、cron進階使用

1.避免cron產生垃圾文件

細心的朋友可能會發現系統/var/spool/clientmqueue/目錄下往往存有大量文件,原因是系統中有用戶開啓了cron,而cron中執行的程序有輸出內容,輸出內容會以郵件形式發給cron的用戶,而sendmail(系統自帶的郵件服務器)沒有啓動所以就產生了這些文件。

這時可以使用輸出重定向,即在計劃任務後加上> /dev/null 2>&1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章