我知道“crontab -e”在尝试安装已编辑的 crontab 之前会执行语法检查。但是,我正在寻找一种方法来验证 crontab 文件的语法是否正确,即使:
- 该 crontab 适用于不同的用户,而该用户可能根本不存在于我正在进行编辑的系统上
- 我不想在我正在进行编辑的系统上安装 crontab
我正在寻找的类比是可以运行“xmllint somefile.xml”来验证文件是否为有效的 xml。
答案1
如果您完全控制服务器,一种方法是创建一个新用户(或使用测试用户),然后在那里编辑 crontab。
另一种方法是将 crontab 条目的命令部分更改为“echo 1 > /tmp/blah”之类的内容,然后看看它是否可以正常工作,但这显然取决于条目何时触发以及不触发的后果是什么。
问题是,除非您测试的环境以相同的方式配置,否则没有任何选项可以真正保证某些东西在 cron 中正确运行。请记住,cron 的环境通常与“普通”用户的环境有很大不同。
最终,“正确”的流程是,如果这是生产环境,则所有更改都应编写脚本,并且所有发布脚本都应在发布测试环境中进行测试。这样,您就有了可重复性和测试。