如何在Linux上創建和管理計劃任務?
譯文【51CTO.com快譯】cron是Linux最有用的工具之一,也是開發人員的寵兒,因為它讓你可以使用通用腳本和針對特定任務的腳本在指定的時段、日期和間隔時間運行自動命令。你可以想象系統管理員如何用它來自動執行備份任務、目錄清理和通知等。
計劃任務(cron job)在后臺運行,不斷檢查/etc/crontab文件以及/etc/cron.*/和/var/spool/cron/目錄。cron文件不該直接編輯,每個用戶都有獨特的crontab。
那么你應該如何創建和編輯計劃任務?借助crontab命令。crontab是用于創建、編輯、安裝、卸載和列出計劃任務的方法。
用于創建和編輯計劃任務的命令一樣且很簡單。更棒的是,創建新文件或編輯現有文件后,無需重新啟動cron。
- $ crontab -e
cron語法
就像使用任何語言一樣,如果你理解其語法,使用cron容易得多;你應該知道2種格式:
A B C D E USERNAME /path/to/command arg1 arg2
或者
A B C D E USERNAME /root/backup.sh
解釋一下上述的cron語法:
- A:分鐘范圍:0 - 59
- B:小時范圍:0 - 23
- C:天數范圍:0 - 31
- D:月份范圍:0-12
- E:每星期天數范圍:0 – 7。星期一開始,0或7表示星期日。
- USERNAME:將這個換成你的用戶名。
- /path/to/command:你想要安排運行的腳本或命令的名稱。
那不是全部。cron使用3個運算符符號,以便你在字段中指定多個值:
- 星號(*):指定字段的所有可能值。
- 逗號(,):指定值列表。
- 連號(- ):指定一系列值。
- 分隔符(/):指定步長值。
你已了解了cron的語法和運算符,不妨看幾個計劃任務例子。
計劃任務例子
運行cron命令的***步是用以下命令安裝crontab:
- # crontab -e
每天凌晨3點運行/root/backup.sh:
- 0 3 * * * /root/backup.sh
在每個月的第二天下午4:30運行script.sh:
- 30 16 2 * * /path/to/script.sh
在每周晚上10點運行/scripts/phpscript.php:
- 0 22 * * 1-5 /scripts/phpscript.php
每天凌晨0點23分、2點和4點運行perlscript.pl:
- 23 0-23/2 * * * /path/to/perlscript.pl
每星期日04:05運行Linux命令:
- 5 4 * * sun /path/to/linuxcommand
計劃任務選項
列出計劃任務。
- # crontab -l
或者
- # crontab -u username -l
刪除所有crontab任務。
- #crontab -r
刪除某個特定用戶的計劃任務。
- # crontab -r -u username
Crontab中的字符串
字符串是開發人員最喜歡的東西之一,因為它們可以消除重復編寫,有助于節省時間。 cron有特定的字符串,可用于更快地創建命令:
@hourly:每小時運行一次,即“0 * * * *”
@midnight:每天運行一次,即“0 0 * * *”
@daily:與子夜一樣
@weekly:每周運行一次,即“0 0 * * 0”
@monthly:每月運行一次,即“0 0 1 * *”
@annually:每年運行一次,即“0 0 1 1 *”
@yearly:與@annually一樣
@reboot:每次啟動時運行一次
比如說,這是每天備份系統的方法:
@daily /path/to/backup/script.sh
此時,你已學會了使用計劃任務來創建和管理系統任務所需的一切。現在你可以開始使用預定的命令,設置和維護多個環境。
原文標題:How to Create and Manage Cron Jobs on Linux,作者:Martins D. Okoi
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】