我听说/etc/crontab,只能在没有命令的情况下/etc/cron.d/*手动编辑如何编辑`/etc/crontab`和`/etc/cron.d/下的文件?。crontab
我是否需要运行crontab -e来创建和编辑用户特定的 crontab 文件/var/spool/cron/crontabs/?
我可以手动创建和编辑 crontab 文件吗 /var/spool/cron/crontabs/t?
是否crontab -e做了一些工作让cron守护进程知道并加载用户特定的 crontab 文件,而手动创建和编辑无法做到这一点?
谢谢。
使用Vixie Cron,它们只是普通文件\xe2\x80\x94,只要你获得正确的权限,你就可以随意编辑它们。Cron 将注意到修改的文件并重新加载 crontab(每分钟检查一次)。这实际上都记录在cron 联机帮助页“NOTES”部分中中,至少在 Debian 上是这样。
\n\n但你真的不应该。
\n\n首先,您确实不需要:您只需将要作为 crontab 安装的文件传递给程序即可crontab:crontab -u bob FILE将安装FILE为 Bob 的 crontab。并且FILE可以-使用标准输入。如果您想编写 crontab 更改脚本,您可以使用crontab -l -u bob列出 crontab,对其进行编辑,然后将其加载回来。例如,您可以这样做(未经测试)以确保您的 root 任期是短暂的:
#!/bin/bash\n\nwhile read -r -u 9 user; do\n {\n crontab -l -u "$user"\n printf \'%s\\n\' \'* * * * * fortune -o | mail -s "DegradedArray event on /dev/md0" root\'\n } | crontab -u "$user" -\ndone 9< <(getent passwd | cut -d: -f1)\nRun Code Online (Sandbox Code Playgroud)\n\n其次,上面暗示了一个不这样做的好理由:这被记录为适用于 Debian 的 cron。但有很多不同的 Cron。例如,RHEL 使用不同的一种。Arch 默认情况下使用 systemd 计时器(不确定它是否使用 systemd crontab 到计时器桥),但如果您想要实际的 Cron,则可以从5 种不同的实现中进行选择。不管怎样,使用crontab安装 crontab 都会起作用,或者至少会失败并显示错误消息,以便您知道它不起作用。它更加便携。