Stan Blog

學習過程中的一些記錄

[Linux] Crontab 排程

在 Linux 系統中,每個使用者可以定義自己的 cron table 來設定週期性排程,管理 cron table 的方法是透過 crontab 指令。

crontab 指令:

  1. crontab -e # 編輯排程
  2. crontab -r # 移除排程
  3. crontab -l # 顯示目前排程
  4. crontab -u # 管理某特定使用者的 cron table。例如: crontab -u user filename

crontab 的格式如下:

分(0-59), 時(0-23) ,日(1-31) ,月(1-12) ,週(0-6), Command

例:

每 0:15, 12:15 分執行一次

15 0,12 * * * /usr/bin/mkdir xxx.txt

每分鐘執行一次

*/1 * * * * echo "hi cron" >> /tmp/z

運作指令:

  1. service crond start # 啟動服務
  2. service crond stop # 關閉服務
  3. service crond restart # 重啟服務
  4. service crond reload/etc/init.d/cron restart # 重新載入配置

執行排程另一種方法

crontab -e 可以設定每日排程外,也有另一種方法執行排程 系統預設提供時間點的排程,在 etc/cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/ 只需把 script 放進想要執行時間的資料夾裡,系統時間到就會自動執行 而各時段執行排程的時間點設定在 /etc/crontab

start cron

在 Linux 中,有個程式叫 crond,意思是 cron daemon,大部分的 Linux 系統都會自動背景啟開這個程式,但是有時候會碰到 cron 沒有啟動的狀態,啟動方式如下: sudo service crond start 啟動之後,我會使用 tail -f /var/log/cron 這個指令來檢查 /etc/crontab 中的程式,是否有正確的被執行。


Ref:

Comments

comments powered by Disqus