2007年12月10日 星期一

Cron Job 排程工作

設定系統的工作排程,主要是修改 /etc/crontab,當我們檢視 /etc/crontab 時,我們可以看到以下程式碼
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 1 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
由這段程式碼我們可窺見程式碼中每個數字的意義
crontab 檔案的格式為一行中有5個數字,以空白鍵或tab鍵分開。這五個數字指定命令執行的時間:

01 * * * * root run-parts /etc/cron.hourly
角色 排程工作

代表意義 分鐘 小時 日期 月份
數字範圍 0-59 0-23 1-31 1-12 0-7
0,7皆可代表週日

範例:
  • 01 * * * * => 每個鐘頭的 01 分
  • 02 4 * * * => 每天的 4 點 02 分
  • 22 1 * * 0 => 每個週日的 1 點 22 分
  • 42 4 1 * * => 每月 1 號的 4 點 42 分
進階寫法
  • 0 3,6 * * * => 每天 3 點與 6 點
  • 20 8-12 * * * => 每天 8 點到 12 點之間的每個小時的 20 分
  • */5 * * * * =>每五分鐘進行一次,用 * 與 /n 來搭配代表每隔 n 單位間隔
排程工作的指令
crontab 可讓使用者建立自己的排程工作,而 root 也可利用 crontab 管理修改其他用戶的排程。
crontab -e:建立,編輯使用者的工作排程。
crontab -l:列出使用者的工作排程。
crontab -r:清空使用者的工作排程。
注意事項:
  • crontab -e 命令會在/var/spool/cron/crontabs目錄下建立一個與您的使用者名稱同名的檔案。
    此檔案中的命令會在特定時間間隔於用戶的起始目錄中執行。
  • 當crontab 命令錯誤時,會發一封郵件給管理者,可藉由編輯 /etc/crontab 中的 MAILTO,來指定寄件信箱。

沒有留言: