一、創建及刪除簡單任務
每小時執行某項任務,是一種很常見的需求。當我們想要實現這一點時,crontab可能是最好的選擇之一。它是一個非常強大的程序,因為它允許自動執行計劃任務。而且,crontab是基於時間的,讓我們可以更好的管理和控制我們的程序。
創建一個每小時執行的任務,需要打開一個命令終端窗口,輸入crontab -e命令以打開編輯器。輸入指定格式,執行shell命令的時間、執行shell命令即可:
0 * * * * command
其中0 代表分鐘數, * 代表所有小時數,後面的 * * 星號表示每天,再後面的 * 代表每月,最後一個 * 代表每周執行。這表示這個任務會在每個小時的0分鐘執行。
當然,如果想刪除剛才創建的這個任務,可以輸入 crontab -l 命令來查看所有的任務(或者刪除某個任務),並找到特定任務的編號(比如第一個任務為 1),然後輸入 crontab -r 編號 命令即可刪除。
二、Linux crontab進行定時任務管理
除了只是設置之後執行某個任務以外,我們還可以使用crontab來管理定期性的操作,並針對不同的userName進行配置。下面是一個crontab schedule timetable的例子:
# 分鐘 小時 日 月 周 command 0 0 * * * /bin/sh /home/userName/task.sh
這表示任務將會在每個月的第一天,凌晨12點開始運行。然而,考慮到神奇的東八區時間,我們需要將時區設置為正確的時間,可以採用下面的命令:
# 時區修改為東8區 export TZ=Asia/Shanghai
三、crontab在錯誤處理上的支持
任何計劃任務都會遇到這個問題:執行的命令可能會失敗,導致整個任務失敗。要解決這個問題,我們需要合適的錯誤處理機制,以彌補任務失敗的風險。最簡單的方法是將錯誤信息重定向到日誌文件中,比如:
0 * * * * command >> /var/log/command.log 2>&1
將會將命令的輸出以及錯誤信息,都記錄到日誌文件 /var/log/command.log 中。
四、crontab在高級用法下的實踐
在處理一些更高級的任務時,可以使用crontab的一些有趣的功能,如在同一任務中運行多個命令、定時啟動服務或者切換用戶。以下示例展示了在每天的三個小時內,以 bob 用戶身份運行 command1,6點-8點的時間以 joe 賬號執行 command2,然後以 root 賬號重新啟動 tomcat 服務:
# 這個文件會每天的3個小時,在bob賬戶下面執行command1 0 3 * * * bob command1 # 這個會在6點到8點之間,在joe賬戶下執行command2 0 6-8 * * * joe command2 # 重啟tomcat服務,需要root用戶許可權 0 1 * * * /etc/init.d/tomcat restart
五、總結
Crontab一個非常強大的任務管理工具,它允許用戶在不同級別上管理計劃任務的執行,通過調整時間來優化我們的計劃。從基礎到高級,我們可以使用我們的創造力來創建定時任務,同時通過日誌和錯誤處理來優化任務的可靠性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304193.html