/etc/cron.d下的文件是如何使用的?

/etc/cron.d下的文件是如何使用的?

/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

我的 /etc/crontab 文件从不引用 /etc/cron.d 下的文件,与链接所说的相反:

$ cat /etc/crontab 
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

你能解释一下/etc/cron.d下的文件是如何使用的吗?谢谢。

答案1

在 Debian 衍生版本(包括 Lubuntu)中,其中的文件/etc/cron.d实际上是/etc/crontab片段,具有相同的格式。引用联机cron帮助页:

此外,在 Debian 中,cron读取目录中的文件/etc/cron.d。以与文件相同的方式cron对待文件(它们遵循该文件的特殊格式,即它们包含用户字段)。但是,它们独立于:例如,它们不从中继承环境变量设置。此更改特定于 Debian,请参阅下面 DEBIAN SPECIFIC 下的注释。/etc/cron.d/etc/crontab/etc/crontab

与 一样/etc/crontab,监视目录中的文件/etc/cron.d是否发生更改。一般来说,系统管理员不应该使用/etc/cron.d/,而是使用标准系统的crontab /etc/crontab

Debian 特定部分暗示了系统管理员不应该使用的原因/etc/cron.d

支持/etc/cron.d(包 crontab 的插入目录)

它的设计目的是允许包安装 crontab 片段,而无需修改/etc/crontab.

相关内容