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

问题描述 投票:0回答:3

假设我通过脚本编写cron文件并直接在下面修改它们

/var/spool/cron/crontabs/
。使用命令
crontab -e
crontab 在退出编辑器时检查语法。有没有办法通过脚本进行相同的检查?

linux syntax cron
3个回答
8
投票

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

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

crontab -l > backup.cron

你可以直接安装你已经准备好的文件:

crontab yourFile.text

或者在脚本中使用管道:

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

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

更多信息:man crontab


3
投票

使用

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,但效果不太好。


0
投票

如果没有当前的 crontab,请将其导出到新文件:

crontab -l > mycron.cron

接下来,执行此命令来验证语法:

crontab -n mycron.cron

输出:

The syntax of the crontab file was successfully checked.
© www.soinside.com 2019 - 2024. All rights reserved.