/etc/cron.d 下的文件是如何使用的?
来自 https://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
cron 读取 /etc/cron.d/ 目录中的文件。通常系统守护进程如 sa-update 或 sysstat 将它们的 cronjob 放置在这里。作为 root 用户或超级用户,您可以使用以下目录来配置 cron 作业。 您可以在此处直接删除您的脚本。run-parts 命令通过 /etc/crontab 文件运行目录中的脚本或程序:
/etc/cron.d/ 将所有脚本放在这里并从 /etc/crontab 文件中调用它们。
在 Lubuntu 18.04 上,/etc/cron.d 下的文件似乎是 crontab 文件而不是 shell 脚本(在上面的链接中提到过):
$ cat /etc/cron.d/anacron
# /etc/cron.d/anacron: crontab entries for the anacron package
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
30 7 * * * root [ -x /etc/init.d/anacron ] && if [ ! -d /run/systemd/system ]; then /usr/sbin/invoke-rc.d anacron start >/dev/null; fi
Run Code Online (Sandbox Code Playgroud)
我的 /etc/crontab 文件从不引用 /etc/cron.d 下的文件,这与链接所说的相反: …
我正在尝试通过创建一个文件来设置一个 cron 作业/etc/cron.d/myjob:
55 * * * * t echo hello > /tmp/cron.log && cd /tmp/test/ && pwd > /tmp/cron.log
Run Code Online (Sandbox Code Playgroud)
我尝试使用重定向来验证作业是否已成功安排。我在 21:50 创建了文件,当 5 分钟后即 21:55 时,仍然没有创建 /tmp/cron.log。我想知道为什么?
我指定了要t在/etc/cron.d/myjob. 但谁是 cron 工作?我不确定,所以我尝试了下面的两个命令。都没有显示我创建的工作。
$ crontab -l
no crontab for t
$ sudo crontab -l
[sudo] password for t:
no crontab for root
Run Code Online (Sandbox Code Playgroud)
我的 /etc/crontab 没有从 /etc/cron.d/ 下的文件中明确读取。见下文。这可能是我的 cron 作业没有运行的原因吗?谢谢。
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab' …Run Code Online (Sandbox Code Playgroud) cron ×2