Linux 特殊作业调度

Linux 特殊作业调度,linux,cron,Linux,Cron,我有三个脚本,希望它们每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 * * *

我有三个脚本,希望它们每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分钟

可能有更奇特的方法,但最简单的方法是列出您希望它们运行的分钟数(剩下的当然是*数小时、数天等):


可能有更奇特的方法,但最简单的方法是列出你希望它们运行的分钟数(剩下的当然是*数小时、数天等等):


可能有更奇特的方法,但最简单的方法是列出你希望它们运行的分钟数(剩下的当然是*数小时、数天等等):


可能有更奇特的方法,但最简单的方法是列出你希望它们运行的分钟数(剩下的当然是*数小时、数天等等):


每分钟调用一个包装器脚本。 此包装器脚本查看(分钟%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*文件。

每分钟调用一个包装器脚本。 此包装器脚本查看(分钟%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*文件。

每分钟调用一个包装器脚本。 此包装器脚本查看(分钟%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*文件。

每分钟调用一个包装器脚本。 此包装器脚本查看(分钟%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*文件