歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux cron學習體系

Linux cron學習體系

日期:2017/2/28 15:43:44   编辑:Linux教程

Linux有個服務,叫cron,提供例行性作業調度。

crontab是一個命令,用於設置周期性被執行的作業。該詞源於希臘語 chronos(χρόνος),原意是時間,而crond正是它的守護進程。

Linux系統原本就有非常多的例行性工作,因此這個服務默認是啟動的。可通過service crond status,來瞧瞧先。為了安全性的問題,可在/etc/cron.deny中,將不可以使用crontab的用戶記錄。一個用戶一行。

當think使用crontab命令後,他的工作會被記錄到/var/spool/cron/think。同時,linux系統會將cron執行的每一項作業記錄到/var/log/cron這個日志文件。

crontab語法如下:
crontab [-u username] [-l|-e|-r]
參數:
-u:只有root才能進行這個任務,即幫其他用戶新建/刪除作業調度
-l:查閱crontab的作業內容
-e:編輯crontab的作業內容
-r:刪除crontab的全部作業內容,刪除一項,請用-e


例子:
1)用think的身份在每天的12:00發信給自己
crontab -e
#此時會進入vi的編輯界面讓你編輯工作,注意,每項作業都是一行,而且,最好使用絕對路徑
0 12 * * * mail think -s "at 12:00" < /home/think/.bashrc
#分 時 日 月 周 |《=============命令串=============》|
編輯完,輸入":wq"保存離開vi即可。

2)假若你的女朋友生日是 5 月 2 日,你想要在 5 月 1 日的 23:59 發一封信給他,這封信的內容已經寫在 /home/dmtsai/lover.txt 內了,該如何進行?
解:59 23 1 5 * mail kiki < /home/dmtsai/lover.txt

3)假如每五分鐘需要執行 /home/dmtsai/test.sh 一次,又該如何?
解:*/5 * * * * /home/dmtsai/test.sh

以上談的都是基於用戶,那麼基於系統呢?直接修改/etc/crontab這個文件即可。
有三種類型:
其一,命令型
0 1 * * * think mail -s "testing" water < /home/dmtsai/test.txt
讓think每小時給water發郵件
其二,目錄型
*/2 * * * * root run-parts /root/runcron
讓root每2分鐘去執行/root/runcron下的所有可執行文件
其三,程序型
*/5 * * * * root /bin/mrtg /etc/mrtg/mrtg.cfg
讓root每5分鐘去運行/etc/mrtg/下的mrtg程序

Copyright © Linux教程網 All Rights Reserved