如何通过像“crontab -e”这样的脚本检查cron语法呢?

时间:2015-07-21 18:07:30

标签: linux syntax crontab

假设我通过脚本编写cron文件并直接修改它们 /var/spool/cron/crontabs/。使用命令crontab -e crontab在退出编辑器时检查语法。有没有办法,通过脚本进行相同的检查?

3 个答案:

答案 0 :(得分:4)

带有-e选项的Crontab会使用当前的cron文件打开默认编辑器,并在退出后安装它。

首先,保存您的实际cron文件,以确保不会丢失或破坏任何内容。

crontab -l > backup.cron

您可以直接安装已烹饪的文件:

crontab yourFile.text

或者在脚本中使用管道:

#/bin/bash
Variable="your scheduled tasks"
echo $Variable | crontab

如果格式错误,您将收到错误消息。

更多信息:man crontab

答案 1 :(得分:1)

使用chkcrontab

pip3 install chkcrontab
chkcrontab /etc/cron.d/power-schedule
Checking correctness of /etc/cron.d/power-schedule
E: 15: 0 12 * foo * * root echo hi
e:     FIELD_VALUE_ERROR: foo is not valid for field "month" (foo)
e:     INVALID_USER: Invalid username "*"
E: There were 2 errors and 0 warnings.

或者尝试使用 Wicked Cool Shell Scripts, 2nd Edition 中的 shell 脚本 48-verifycron,但效果不佳。

答案 2 :(得分:0)

您可以通过键入以下内容来检查crontab中是否存在非打印字符(通常是导致crontab损坏的原因)

crontab -l | cat -e

sudo crontab -l | cat -e

如果您有根crontab。