Linux 下crontab 詳解轉

http://yaksayoo.blog.51cto.com/510938/162062linux

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


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

#ntsysv
在自啓動列表中選中crond便可服務器

 

1、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文件。


2、使用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的一些基本用法,這個東東的時間組合可不是通常的強~能夠複雜到你沒法想象,咱們只要掌握少量基本就能夠知足平常需求了。


3、cron進階使用

1.避免cron產生垃圾文件

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

這時可使用輸出重定向,即在計劃任務後加上> /dev/null 2>&1

例:
9 9 * * * /usr/local/bin/cvsb > /dev/null 2>&1

2>&1:把錯誤重定向到輸出要送到的地方。
把命令的執行結果重定向到/dev/null,即把產生的錯誤拋棄。

      
2.一種常常碰到的狀況,須要執行的文件沒問題,但經過cron就是死活不能正確執行,這時咱們能夠經過輸出重定向將cron的執行過程輸出到一個文件,經過分析執行過程來尋找錯誤的緣由

例:
9 9 * * * /usr/local/bin/cvsb > /var/log/crontab_log 2>&1

上例將cron的執行過程輸出到一個文本文件crontab_log,這個文件能夠隨便手動建一個,放在哪都行,重定向目錄寫對就Ok。工具

相關文章
相關標籤/搜索