如何一次编辑多个 cpanel 用户 cron 作业?

如何一次编辑多个 cpanel 用户 cron 作业?

我正在用来cat /var/spool/cron/*查看所有 cpanel 用户创建的所有 cron 作业。

是否可以像通过 nano 编辑并点击保存一样编辑其输出?

答案1

如果你想进行碰撞检测和预防(如你问的另一个问题),那么完成你的要求的一个简单方法是

cat /var/spool/cron/* >/tmp/cat.out; $EDITOR /tmp/cat.out

这会将所有多个用户的 crontab 合并到一个文件中,保存并编辑它。但我觉得这没什么用。更有用的是

ls /var/spool/cron/* | xargs -i $EDITOR {}

它将按顺序编辑每个用户的 crontab,保存,然后打开下一个。您(以 root 身份)有责任注意并纠正每个文件之间的冲突。

进一步的改进是创建第一种方法的注释版本来识别问题,然后返回并单独编辑特定的用户 crontab 进行修复。

for I in /var/spool/cron/*; \
do awk '!/^#/&&!/^[^[:blank:]]*=/{printf "%s:\t%s\n", F, $0}' F=$I $I; \
done |sort -k2 | less

将列出所有 crontab 文件的所有内容(注释和环境变量分配除外),每个内容都以特定的贡献 crontab 文件名为前缀,并按 crontab 内容排序。这将有望将所有 crontab 中的所有类似计划行按排序顺序放在一起,以便您可以轻松地找出冲突的行以及哪个用户贡献了它们。结果输出仅供参考,不用于安装到 cron 中。

相关内容