1. 程式人生 > >LINUX系統中的迴圈定時任務

LINUX系統中的迴圈定時任務



一、前言:
linux中有兩種定時任務,一種是一次性定時任務“at”,一種是週期性定時任務“cron”;這裡寫的是迴圈定時任務
用到的命令為crontab -e,它會把定時任務的內容寫入到“/var/spool/cron/使用者名稱”檔案中;
每一個使用者的定時任務都對應著一個檔案,不建議用vim去直接編輯這個檔案;
而每執行一次定時任務都會在“/var/log/cron”檔案中進行記錄;

二、命令格式
[[email protected] ~]# crontab [-u username] [-l|-e|-r]
選項與引數:
-u  :只有 root 才能進行這個任務,即幫其他使用者建立/移除 crontab 工作任務;

-e  :編輯 crontab 癿工作內容
-l  :查閱 crontab 癿工作內容
-r  :移除所有癿 crontab 癿工作內容,若僅要移除一項,請用 -e 去編輯

任務格式
* * * * * 命令
上面的有5個*和一個命令,分別代表以下意思
代表意義  分鐘  小時  日期  月份  周   指令
數字範圍  0-59  0-23  1-31  1-12  0-7  指令
注意:比較有特殊的是那個『周』!周的數字0和7,都代表『星期天』的意思!

另外還有一些特殊字元:
*(星號):代表“所有”的意思
,(逗號):代表“和”的意思,如3,6表示 3和6 
-(減號):代表“到”的意思,一個範圍,如2-5表示2到5
/n(斜線):代表“每隔”的意思,如:*/2 * * * * 命令 表示每間隔2分中執行一次

注意:每間隔2分也可以寫成0-59/2 正如每2小時可以寫成 */2和0-23/2

三、例項
例項1:每隔2分中在終端輸出“hello”
[[email protected] ~]# crontab -e
*/2 * * * * echo "hello">/dev/pts/0

例項2:每天晚上凌晨執行/home/test.sh指令碼
[[email protected] ~]# crontab -e
*/2 * * * * echo "hello">/dev/pts/0 
59 23 * * * /home/test.sh

注意:每一個任務是一行