歡迎您光臨本站 註冊首頁

crontab學習日誌 .

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

crontab學習日誌 .

crontab學習日誌 .



剛接觸crontab,看了好多文章。小總結一下,以備突擊排查。




概念:
crontab: 在Unix或類Unix系統中,用於設置執行計劃的命令。可以使用它來設置定期執行某個命令。
crond: 它是一個守護進程,每分鐘(最小單位只到分鐘,所以不要指望指定在哪一秒執行)會檢查一次是否有需要執行的crontab計劃。如果有就會激活crontab文件里定義的指令。
cronfile: crontab文件,這類文件裡頭放著一些指令。這些指令就是我們想要定期執行的指令。

格式:
cronfile的格式:
t1 t2 t3 t4 t5 program
其中 t1 是表示分鐘,t2 表示小時,t3 表示一個月份中的第幾日,t4 表示月份,t5 表示一個星期中的第幾天。program 表示要執行的程序。
當 t1 為 * 時表示每分鐘都要執行 program,t2 為 * 時表示每小時都要執行程式,其餘類推
當 t1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,t2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 t1 為 */n 時表示每 n 分鐘個時間間隔執行一次,t2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推 (這一點,有一些版本的unix不支持)
當 t1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,t2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推


設計crontab計劃的格式:
# crontab [-option] | cronfile
option:
  -e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
 -r : 刪除目前的時程表
 -l : 列出目前的時程表
 -v :列出用戶cron作業的狀態


路徑:
/etc/crontab:crontab配置文件
/var/spool/cron/: 使用crontab時,會在這個目錄下新建一個cronfile的副本。取名就是當前系統用戶名,如:root。其實守護進程crond就是從這裡提取文件的。
/var/spool/mail/{用戶名}: 默認的crontab每次執行,會發送一個郵件到當前用戶的郵箱里。所以你可以在這個當前用戶的郵箱里查看郵件,如果/var/spool/mail/root里查看root的crontab郵件。
/var/log/cron*: 在/var/log/下所有ls cron* 文件都是crontab的日誌文件。可以查看日誌。


crontab文件的例子:
  每月每天每小時的第 0 分鐘執行一次 /bin/ls :
  0 * * * * /bin/ls
  在 12 月內, 每天的早上 6 點到 12 點中,每隔 20 分鐘執行一次 /usr/bin/backup :
  */20 6-11 * 12 * /usr/bin/backup
  周一到周五每天下午 5:00 寄一封信給 alex@domain.name :
  0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
  每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....執行 echo "haha"
  20 0-23/2 * * * echo "haha"
  晚上11點到早上8點之間每兩個小時,早上8點
  0 23-7/2,8 * * * date


crontab使用方法:
列出crontab文件
  為了列出crontab文件,可以用:
  $crontab -l                                                     
編輯crontab文件
  如果希望添加、刪除或編輯crontab文件中的條目,而EDITOR環境變數又設置為vi,那麼就可以用vi來編輯crontab文件,相應的命令為:
  $ crontab -e                                                   
  可以像使用vi編輯其他任何文件那樣修改crontab文件並退出。
刪除crontab文件
  為了刪除crontab文件,可以用:
  $ crontab -r                                                   
恢復丟失的crontab文件
  如果不小心誤刪了crontab文件,假設你在自己的$HOME目錄下還有一個備份,那麼可以將其拷貝到/var/spool/cron/,其中是用戶名。如果由於許可權問題無法完成拷貝,可以用:
  $ crontab
  其中,是你在$HOME目錄中副本的文件名。
《解決方案》

http://bbs.chinaunix.net/thread-2291457-1-1.html

[火星人 ] crontab學習日誌 .已經有738次圍觀

http://coctec.com/docs/service/show-post-1598.html