如何验证 cron 作业中的语法

如何验证 cron 作业中的语法

我们正在创建一个新的 cron 作业/etc/cron.d

这个 cron 作业大约有 56 行,所有命令都应该在每个月初执行。

我正在寻找验证 cron 作业语法的建议。

我的意思是,如何验证 cron 作业文件是否配置正确且没有错误 - 是否有一些命令可以验证这一点?

答案1

这是用 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

@monthly正如 cron 语法所允许的那样,必须对其进行增强以处理月份名称和范围(甚至)。

awk '!/^#/ && NF >= 7 && ($3 != 1 && $3 != "*") && $4 != "*" 1'

相关内容