LINUX系統中的迴圈定時任務
阿新 • • 發佈:2019-01-23
一、前言:
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
注意:每一個任務是一行