最近,我们的一个系统(Linux Ubuntu,但任何 *nix 都一样)上的一个用户的 crontab 文件缺少终止换行符。
*nix 配置文件通常需要终止换行符,cron 也不例外。但是,添加没有换行符的文件时不会发出任何警告,并且永远不会执行该命令。
因此,有两个修复方法可以确定。
- 运行 cron 进程来检查这些文件。
- 为 cron 提供更友好的前端。
第二,这个问题是关于什么的。要么在输入文件之前检查语法,要么在整个输入过程中进行前置检查,这无论如何都有点晦涩难懂。
对于这台特定的机器,需要一个命令行工具,因为它位于数据中心,并且没有安装 X 环境。
答案1
我喜欢 webmin 中的 cron 界面。
答案2
我一直觉得语法着色vim
足以帮我解决这个问题。我没有遇到换行符问题,因为我已经训练自己习惯于自动处理它,就像开车一样,所以你会有这样的经历:开车时想着一些有趣的事情,然后你下车,自问“我是怎么到这里来的?我完全不记得这次旅行了!”——“该死,这些换行符是从哪里来的?”
答案3
现在CronSandbox。
这是一个“沙盒”,可以安全地探索 crontab 命令。输入时间值,CronSandbox 会验证语法并提供作业将执行的未来日期和时间。
答案4
我将默认编辑器改为 emacs,它会询问您是否要在退出时以换行符结束缓冲区:)
setenv EDITOR <editor>
在你的.bashrc(或适当的)应该处理这个解决方案:)
要回答问题的第二部分,您也可以将脚本放在cron.<period>
目录中/etc