轻松启用或禁用 cron

轻松启用或禁用 cron

每当我需要启用 cron 时,我都会将 cron 文件复制到 spool 文件夹。

cp /home/shantanu/shantanu /var/spool/cron/
chown shantanu:root /var/spool/cron/shantanu 

这有用吗?我可能会遇到什么问题吗?

更新:使用 CentOS

答案1

为特定用户禁用某些 cron 作业的官方方法是输入crontab -e -u <user>#在开头放置一个来注释掉。


更新

因为 cron 文件将成为 shell 脚本的一部分。

尝试这个:

crontab -l -u shantanuo > shantanuo.cron
sed -i 's/^/#/' shantanuo.cron
crontab shantanuo.cron
rm -f shantanuo.cron

答案2

可能工作。但..

正如前面的发帖者所说:不要这样做。使用crontab -e。直接编辑文件可能有效,但这不是一种稳健的做法。在更新相关组件时,您的内容可能会随时损坏。此外,它的可移植性不强,其他系统可能会将文件存储在不同的地方。这就像自己实现“printf”而不是使用标准 iolib。

所以,不要这样做。

编辑:如果您需要用 shell 脚本生成 crontab,那么只需将您的内容输入其中crontab(它甚至知道伪文件 '-'!阅读手册页。)。

答案3

为什么不直接使用命令crontab -e,或者如果您以 root 身份登录,crontab -e -u shantanu

答案4

如果您想暂停作业而不必重新启动 cron(这可能会影响每 3 分钟运行一次的作业),您可以使用锁定文件,可以在脚本中轻松创建或删除。

*/3 0 * * * [ ! -f /tmp/job.lock ] && /path/to/job

因此要暂停工作,请使用:

touch /tmp/job.lock

通过以下方式重新启动 cron 内的调度:

rm /tmp/job.lock

这样做的好处是,您可以对不同的作业(或每组作业,如果它们都使用相同的锁文件)使用不同的锁文件,而不必担心中断调度或因编辑(通过脚本或手动)crontab 时出现错误而破坏 cron。

相关内容