每当我需要启用crons,我将复制cron文件到假脱机文件夹。
cp /home/shantanu/shantanu /var/spool/cron/ chown shantanu:root /var/spool/cron/shantanu
这会工作吗? 我可能遇到的任何问题?
更新:使用CentOS
为特定用户禁用某些cron作业的官方方式是键入crontab -e -u <user>并在开始注释时放置一个# 。
UPDATE
因为cron文件将成为shell脚本的一部分。
尝试这个:
crontab -l -u shantanuo > shantanuo.cron sed -i 's/^/#/' shantanuo.cron crontab shantanuo.cron rm -f shantanuo.cron
它可能工作。 但..
正如以前的海报说:不要这样做。 使用crontab -e 。 直接编辑文件可能工作,但不是强大的做法。 更新相关组件时,您的资料可能会随时中断。 另外,它不是很便携,其他系统可能会将文件存储在不同的地方。 这就像你自己实现“printf”而不是使用标准的iolib。
所以,不要这样做。
编辑:如果你需要用shell脚本生成crontab,那么只需将你的东西放到crontab (它甚至知道伪文件' – '!阅读手册页)。
为什么不使用命令crontab -e ,或者如果你是以root身份login的, crontab -e -u shantanu ?
这可能会也可能不会工作取决于您正在使用哪个操作系统(和哪个版本的cron)。 检查一些Linux的箱子,他们的cron手册页说这个
此外,cron会检查每一分钟的spool目录的mod-time(或/ etc / crontab中的modtime)是否已经改变,如果有,cron将检查所有crontabs的modtime并重新载入已更改的modtime。 因此,只要crontab文件被修改,就不需要重新启动cron。 请注意,crontab(1)命令会在更改crontab时更新假脱机目录的modtime。
因此,提供/var/spool/cron目录的mtime更新,然后cron将检查单个crontabs,看看它们是否被更新重新读取它们。
如果我们看一个Solaris 10的盒子,它的cron手册页说这个
cron只在自己的进程初始化阶段和crontab或at命令运行时才检查crontab或命令文件。 这可以减less定期检查新文件或更改文件的开销。
因此,在Solaris 10系统(可能还有其他系统)上,您将不得不使用crontab命令来更改这些文件,并通知cron它应该重新读取它的crontab文件。