我需要设置一个cronjob,每隔5分钟运行一个bash脚本,从上午9:30到下午4:00。
我有以下但是,它不太正确......
的cronjob:
*/5 9-16 * * * /path/to/directory/job.sh > /path/to/log/file/job.log 2>&1
答案 0 :(得分:4)
你所拥有的是一条线,它将在09:00
和16:55
之间每隔五分钟运行一次命令(这里的所有范围都包括在内)。
您尝试实现的目标可以通过三个单独的 crontab
行相对简单地完成:
30-59/5 9 * * * /path/to/directory/job.sh > /path/to/log/file/job.log 2>&1
*/5 10-15 * * * /path/to/directory/job.sh > /path/to/log/file/job.log 2>&1
0 16 * * * /path/to/directory/job.sh > /path/to/log/file/job.log 2>&1
第一个处理09:30
和09:55
之间的情况,10:00
和15:55
之间的每五分钟处理一次,最后一个处理{{1}的单个作业}}
答案 1 :(得分:2)
Cron没有直接表达的语法,因此您需要3个单独的行:一个用于9:30-9:55,一个用于10:00-15:55,以及一个16:00。
我认为这是正确的:
30-55/5 9 * * * <command>
*/5 10-15 * * * <command>
0 16 * * * <command>