![不使用“crontab -e”命令编辑 crontab 文件有什么风险?](https://linux22.com/image/1410882/%E4%B8%8D%E4%BD%BF%E7%94%A8%E2%80%9Ccrontab%20-e%E2%80%9D%E5%91%BD%E4%BB%A4%E7%BC%96%E8%BE%91%20crontab%20%E6%96%87%E4%BB%B6%E6%9C%89%E4%BB%80%E4%B9%88%E9%A3%8E%E9%99%A9%EF%BC%9F.png)
我开发了一个脚本,其中我使用命令向 crontab 文件添加行echo
,并使用sed
命令删除行。
我不知道这样做的风险,尤其是当我在某些网站上看到我们必须使用以下命令编辑 crontab 文件时:
crontab -e
- 不使用的风险是什么
crontab -e
? - 我的编辑是否有可能不被纳入 cron 计划?
- 我应该使用
/etc/init.d/cron
restart 来重新启动 cron 吗?
答案1
- 可能无法检测到语法或其他错误。
- 是的。不同的 cron 实现有不同的方法来检测 crontab 更改。例如,Vixie cron 依靠其
crontab
命令来更新 spool 目录的修改时间来发出更改信号。您必须知道您的 cron 实现是如何工作的。 - 如果您不确定 cron 具体如何工作,最好重新启动 cron。
底线:crontab
如果可能,您应该使用它。它存在是有原因的。您的crontab
命令可能有一个选项,可以将现有的 crontab 作为参数并将其安装到系统范围的 crontab 目录中,这样您就可以进行任何需要使用的编辑sed
,然后使用它crontab
来安装您的更改。
答案2
- Crontab 会从出现语法错误的地方失败(linux)
- 如果意外添加了新行,Crontab 将失败(solaris)
- 您不需要重新启动 cron。