我有三个脚本,并且希望每个脚本每3分钟运行一次,但是每分钟运行一个不同的脚本。
例如
00:00 script1 is executed
00:01 script2 is executed
00:02 script3 is executed
00:01 script1 is executed
有没有办法在Debian中通过crontab进行这项工作?
目前我有这样的话:
*/3 * * * * php /Scripts/script1.php &> /dev/null
*/3 * * * * php /Scripts/script2.php &> /dev/null
*/3 * * * * php /Scripts/script3.php &> /dev/null
但这会在3分钟后运行所有脚本
答案 0 :(得分:2)
可能有更好的方式,但死的简单方法就是列出你希望它们运行的分钟数(其余的当然是*几小时,几天等):
0,3,6,9,12,15,18,21,24,27...
1,4,7,10,13,16,19,22,25,28...
2,5,8,11,14,17,20,23,26,29...
答案 1 :(得分:1)
每分钟调用一次包装脚本。 这个包装器脚本查看(分钟%3)并使用余数调用正确的脚本 在cron中只有一行:很好。
编辑:新想法 您可以通过引入丑陋的crontab行来跳过包装器 我会去包装(更干净的crontab,设置和导出变量的地方, 附加控制声明),但我认为你应该知道可能性 将测试文件x0,x1和x2放在/ tmp,chmod + x中,内容为echo $(date) $0 >> /tmp/x.out
制作crontab行
* * * * * /tmp/x`echo "$(date '+\%M') \% 3" | bc`
等待5分钟(可能让我喝咖啡黑色?)并查看/tmp/x.out。
删除crontab条目和新的/ tmp / x *文件。