每天使用crontab运行特定脚本

时间:2014-07-17 01:44:18

标签: shell unix

我的cron工作每天都在4:00 am

运行
00 4 * * * /home/unix/test.sh

现在假设时间是1:00 am而且我不想今天只运行这个cron作业 我必须做什么。

4 个答案:

答案 0 :(得分:1)

可以执行以下操作:从cron中删除作业,但首先安排一种机制来恢复它。

crontab -l > current.crontab
at now + 4 hours <<END
crontab current.crontab
END

然后,编辑crontab并注释或删除您今天不想运行的作业。

答案 1 :(得分:1)

评论线路,回家睡觉,明天在工作时取消注释。

crontab -e

在要停止一段时间的行的开头插入#:

# 00 4 * * * /home/unix/test.sh

save and exit

答案 2 :(得分:0)

1)使您的脚本不可执行:

示例:

chmod -x /home/unix/test.sh

2)使脚本在7月17日(明天)上午6点(或其他任何地方,凌晨4点之后)可执行。

# Make the script executable on 17 July (tomorrow).
0 6 29 7 * chmod +x /home/unix/test.sh

答案 3 :(得分:0)

这真的不是cron的目的,但是如果你知道一周的哪一天你可以换成工作,除了当天的每一天。例如,如果当天是星期日,您可以给出范围1-6(范围:1-7,1代表星期一),因此您的cron工作看起来像

00 4 * * * 1-6 /home/unix/test.sh

cron格式here

的良好参考

一天结束后,您可以将其更改回原来的每天再次运行。

或者,如果您没有其他任何工作要担心(sudo /etc/init.d/cron stop),那么您可以暂时禁用cron,然后在凌晨4:00后再次启用它。

你甚至可以只禁用cron,然后运行一个简单的bash命令让它在4小时内启用。例如:

第一站cron: sudo /etc/init.d/cron stop

然后运行bash命令以查看4小时然后启用cron(您需要以root身份运行它,具体取决于您如何设置禁用cron的权限):

睡觉4小时; /etc/init.d/cron start

然后你可以运行这两个命令然后回到床上,你的cron将被禁用4小时,然后在剩下的时间启用! (或直到再次禁用)。还有其他方法,我猜是必须要有创意。