歡迎您光臨本站 註冊首頁

Crontab 筆記

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

Crontab 筆記

Crontab 筆記


關於 Crontab ,維基百科上的詞條 Crontab非常好。可惜這個地址在國內不用代理訪問不到。

雖然關於 Crontab 的介紹到處都是,詳細讀了一遍這個詞條,收穫還是有的。Crontab 這個名字來自 「chronos」,一個古希臘語, 「時間」的意思.
常見陷阱

每個SA、DBA 或者是普通的 Unix 用戶,在第一次使用 Crontab 的時候都會遇到問題. 運行 Crontab 的常見錯誤包括如下幾種:1) 出於測試目的新創建了一條 Cron JOB, 時間間隔必須超過兩分鐘,否則 JOB 將調度不到。如果必須忽略這兩分鐘的載入配置時間差,可以通過重新啟動 Cron Daemon 做到。

2) 從 Crontab 中啟動 X Window 程序需要注意的事項:所以要麼在程序前初始化 「DISPLAY=:0.0″, 要麼在應用程序後面追加參數 ?display :0.0

3) 命令中的 % 必須做轉義處理: \% .我個人的意見是不要在命令行裡帶這個參數,乾脆寫到腳本里,然後調度該腳本即可。

其實我倒是認為使用 Crontab 最常見的一個問題往往是因為環境變數不對。經常會看到論壇里有人問:為什麼我的 Crontab 創建了不執行? 準備創建一條 Cron JOB 的時候,很多人都喜歡在命令行下運行一遍,因為這個時候環境變數是隨著 Shell 自動帶進來,在 Crontab 中則可能因為找不到正確的環境變數,JOB 就不能執行。這個小問題就像出天花,一次教訓之後就都記得了。
必須使用的一則技巧

每條 JOB 執行完畢之後,系統會自動將輸出發送郵件給當前系統用戶。日積月累,非常的多,甚至會撐爆整個系統。所以每條 JOB 命令後面進行重定向處理是非常必要的: >/dev/null 2>&1 。前提是對 Job 中的命令需要正常輸出已經作了一定的處理, 比如追加到某個特定日誌文件。附: Crontab 的格式說明如下:

* 逗號(』,') 指定列表值。如: 「1,3,4,7,8″
* 中橫線(』-') 指定範圍值 如 「1-6″, 代表 「1,2,3,4,5,6″
* 星號 (』*') 代表所有可能的值

Linux(開源系統似乎都可以)下還有個 「/」 可以用. 在 Minute 欄位上,*/15 表示每 15 分鐘執行一次. 而這個特性在商業 Unix ,比如 AIX 上就沒有.

## Use the hash sign to prefix a comment
# +---------------- minute (0 - 59)
# |  +------------- hour (0 - 23)
# |  |  +---------- day of month (1 - 31)
# |  |  |  +------- month (1 - 12)
# |  |  |  |  +---- day of week (0 - 7) (Sunday=0 or 7)
# |  |  |  |  |
# *  *  *  *  *  command to be executed
《解決方案》

學習鳥  謝謝分享

[火星人 ] Crontab 筆記已經有236次圍觀

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