Linux

如何驗證 cron 作業中的語法

  • August 29, 2018

我們正在創建一個新的 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'

引用自:https://unix.stackexchange.com/questions/465522