使用 crontab 做定時服務

jopen 10年前發布 | 13K 次閱讀 crontab Linux

使用crontab做定時服務

基本命令

  • crontab -e 編輯任務
  • crontab -l 列出任務

時間格式

  • f1 f2 f3 f4 f5 program
    • f1:分鐘
    • f2:小時
    • f3:一個月中的第幾天
    • f4:月份
    • f5:一個星期中的第幾天
  • f1為 a-b 表示從a分鐘到b分鐘內執行
  • f2為 a-b 表示從a小時到b小時內執行
  • f1為 */n 表示n分鐘個時間間隔執行一次
  • f2為 */n 表示每n小時個時間間隔執行一次
  • f1為 a, b, c,… 時表示第 a, b, c… 分鐘要執行
  • f2為 a, b, c,… 時表示第 a, b, c… 個小時要執行

Samples

  1. * * * * * command
    每分鐘執行一次
  2. 3,15 * * * * command
    每小時的第 3 15 分鐘執行一次
  3. 3,15 8-11 * * * command
    上午8點到11點的第3 15分鐘執行一次
  4. 3,15 8-11 */2 * * command
    每隔兩天的上午8點到11點的第3 15分鐘執行一次
  5. 3,15 8-11 * * 1 command
    每個星期一的上午8點到11點的第3和第15分鐘執行
  6. 30 21 * * * command
    每晚的21:30執行
  7. 45 4 1,10,22 * * command
    每月1、10、22日的4 : 45執行
  8. 10 1 * * 6,0 command
    每周六、周日的1 : 10執行
  9. 0,30 18-23 * * * command
    每天18 : 00至23 : 00之間每隔30分鐘執行
  10. 0 23 * * 6 command
    每星期六的晚上11 : 00 執行
  11. * */1 * * *
    每小時執行一次
  12. * 23-7/1 * * *
    晚上11點到早上7點之間,每隔一小時執行
  13. 0 11 4 * mon-wed
    每月的4號與每周一到周三的11點執行
  14. 0 4 1 jan *
    一月一號的4點
  15. 01 * * * * root run-parts /etc/cron.hourly
    每小時執行/etc/cron.hourly目錄內的腳本
    ** run-parts這個參數了,如果去掉這個參數的話,后面就可以寫要運行的某個腳本名,而不是目錄名了 **

注意事項

  • 手動可執行任務,但無法自動執行,需要注意環境變量

    • 腳本中涉及文件路徑時寫全局路徑
    • 腳本執行要用到java或其他環境變量時,通過source命令引入環境變量
    cat start_cbp.sh
    #!/bin/sh
    source /etc/profile
    export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf
    /usr/local/jboss-4.0.5/bin/run.sh -c mev &
  • 清理系統用戶的郵件日志
  • 新創建的cron job,不會馬上執行,至少要過2分鐘才執行。如果重啟cron則馬上執行。
  • 當crontab突然失效時,可以嘗試/etc/init.d/crond restart解決問題。或者查看日志看某個job有沒有執行/報錯tail -f /var/log/cron。
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!