如何暂时禁用一个或多个用户的Cron作业?特别是,我不想暂停用户的cron权限-只是不解雇他们的任何工作。
我在SLES 11 SP2和SP3系统上
如何暂时禁用一个或多个用户的Cron作业?特别是,我不想暂停用户的cron权限-只是不解雇他们的任何工作。
我在SLES 11 SP2和SP3系统上
Answers:
touch /var/spool/cron/crontabs/$username; chmod 0 /var/spool/cron/crontabs/$username
应该可以。使用chmod 600
和还原touch
(您需要更改文件的mtime,以使cron(尝试)重新加载它)。
至少在Debian上并且可能在通常使用Vixie cron的情况下,chmod 400 /var/spool/cron/crontabs/$username
也可以解决问题,因为该实现坚持要求权限必须恰好为600。但是,这只持续到用户运行crontab
命令为止。
如果您想要一种健壮的方法,我认为没有什么比暂时将其crontab移开或更改权限并将其临时添加到更好的了/etc/cron.deny
。
chmod
。
touch $username
了chmod
。但这没有帮助。(顺便说一句cron.deny
)
chgrp root /var/spool/cron/crontabs
如果您使用的是Debian,则仅适用于Debian AFAIK:
您可以通过在cronjob的名称上添加一个点来实现。
行为在Debian官方文档中有提及:
https://www.debian.org/doc/debian-policy/#cron-job-file-names
cron作业文件名不得包含任何句点或加号(。或+)字符,因为这将导致cron忽略该文件。应使用下划线(_)代替。和+字符。
如果您只想cron
完全停止所有作业一会儿-例如,在进行系统维护时,它们可能会交互不良-这些命令通常是
systemctl stop crond.service
并且,恢复
systemctl start crond.service
我认为您需要root或wheel权限才能执行这些操作;如有必要,请通过sudo或(最后手段)以root身份登录运行它们。
对于所提出的特定问题,矫kill过正,但是提供了“一站式购物”功能,不需要播放文件系统或临时文件。
-u user
开关crontab
并#
在作业前面添加注释字符来禁用给定用户吗?