定時任務crontab在書寫時的四大坑

crontab是linux運維必須掌握的技能,雖然crontab好學,可是在實際書寫過程當中也會遇到各類坑:node

第一坑:好比寫一個命令天天晚上12點執行,可能新手在書寫時會出現兩種錯誤狀況:linux

一、* 00 * * * CMD運維

這個錯誤的緣由是沒有指定分鐘位的具體時間,會致使每分鐘都執行。ide

二、00 12 * * * CMDpost

這個錯誤的緣由是不瞭解定時任務在書寫小時是按照24小時制來寫的,晚上12點應爲00,若是寫12是中午12點的意思。linux運維

第二坑:好比在寫定時備份文件的任務時,爲了不文件名重複,每每會用到date +%F,可是因爲咱們忽略了%在定時任務crontab的配置文件是有特殊用法的,表示換行,因此每每咱們寫的定時任務並無被真正執行,解決這個問題的辦法是將%F前面的%百分號用\轉義符去掉在crontab配置文件中的特殊意義。隊列

第三坑:在寫命令時,沒有用命令的絕對路徑,會致使定時任務找不到該命令,由於crontab默認只能找到/usr/bin和/bin下的命令,其餘路徑的命令不能直接找到,須要加絕對路徑才能真正被使用。crontab

第四坑:在定時任務書寫時,沒有將定時任務的輸出結果定向到一個文件或空/dev/null會致使兩種狀況的發生:一、系統郵件服務開啓了,會致使postfix(C6)不斷給root發送郵件,給管理員形成困擾;二、若是郵件服務沒有開啓,會不斷增長郵件隊列在/var/spool/postfix/maildrop/目錄下建立小於4k的小文件,大量佔用inode,最終將磁盤的inode用光致使雖然block沒滿,可是inode滿了而存儲不了真正須要的數據。it

相關文章
相關標籤/搜索