目的和目的有什么区别
/etc/crontab
/etc/cron.d/
/var/spool/cron/crontabs/root
如果您想添加一个 cron 作业,您会将它添加到哪个文件中?
cron(8) 的联机帮助页说
/etc/cron.d/:包含为不同用户存储的系统cronjobs的目录。
“为不同用户存储”是什么意思?它看起来与/var/spool/cron/crontabs/
.
https://unix.stackexchange.com/a/478581/674从 cron 手册页引用:
一般来说,系统管理员不应该使用/etc/cron.d/,而是使用标准的系统crontab /etc/crontab。
将系统管理员添加作业/etc/crontab
,/etc/cron.d/
或/var/spool/cron/crontabs/root
?
谢谢。
/etc/crontab
是“系统”作业的历史位置。它不一定在所有系统上都使用(例如 RedHat 7 和衍生产品有一个“空”条目),或者它可能有命令来调用cron.daily
和其他人。
/etc/cron.d/*
本质上与/etc/crontab
但拆分为单独的文件相同。这使得包可以轻松添加新的 cron 条目;只需将它们放在此目录中即可。
因此,例如,在 CentOS 7 上:
% rpm -ql sysstat | grep cron
/etc/cron.d/sysstat
% sudo cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
Run Code Online (Sandbox Code Playgroud)
您可以看到这些条目与/etc/crontab
.
在cron.d
设计之前,脚本需要编辑 /etc/crontab
才能完成相同的工作,这是更辛苦的工作,并且可能会出错。
/var/spool/cron/crontabs
是crontab
命令管理的东西。
所以...
如果要由包部署 cron 作业,则该包应将文件放入/etc/cron.d/
. 企业自动化工具也可以做到这一点。
如果系统管理员(或任何其他用户)想要添加一个 cron 作业,crontab -e
那么它将被放入/var/spool/cron/crontabs/