Linux
如何驗證 cron 作業中的語法
我們正在創建一個新的 cron 作業
/etc/cron.d
。這個 cron 作業大約有 56 行,所有命令都應該在每個月初執行。
我正在尋找驗證 cron 作業語法的建議。
我的意思是,如何驗證 cron 作業文件是否配置正確且沒有錯誤 - 是否有一些命令可以驗證這一點?
這是一個用 awk 編寫的驗證器的開始,它檢查:
- 對於非註釋行
- 對於具有足夠欄位的行看起來像一個 crontab 條目
- 其中 $3 中的日期值不是 1 或 *
- 月份值不是
*
…然後列印(違規)行。
在樣本輸入上:
53 23 * * * root /usr/lib64/sa/sa2 -A 53 23 1 * * root /usr/lib64/sa/sa2 -A 53 23 2 * * root /usr/lib64/sa/sa2 -A
輸出是:
53 23 2 * * root /usr/lib64/sa/sa2 -A
正如 cron 語法允許的那樣,這必須增強以處理月份名稱和範圍(甚至
@monthly
)。awk '!/^#/ && NF >= 7 && ($3 != 1 && $3 != "*") && $4 != "*" 1'