Crontab 计划问题
Crontab schedule issue
我有几个脚本 运行 每 3 分钟一次,时间表如下所示:
*/3 * * * * /some/script1.php
*/3 * * * * /some/script2.php
*/3 * * * * /some/script3.php
我假设这些脚本 运行 同时执行,但我希望这些脚本每 3 分钟 运行 但不同时执行一次。请告诉我我怎样才能达到这个目标。
您无法用现有的线路达到此目的,这些线路总是同时 运行。但是,您可以简单地创建一个 "master" 脚本,通过 cron 调用,然后一个接一个地调用这些脚本。
*/3 * * * * /usr/bin/php /some/masterscript.php
masterscript.php:
<?php
exec('/usr/bin/php /some/script1.php');
exec('/usr/bin/php /some/script2.php');
exec('/usr/bin/php /some/script3.php');
?>
编辑:
根据您服务器的设置 - 安装 node.js。您可以每秒设置一个 cron 包。也许这可以帮助..
你可以但不能使用那种语法,而应该使用这种语法:
1,4,7,10,13,16,etc... * * * * /some/script1.php
2,5,8,11,14,17,etc... * * * * /some/script2.php
and so on....
您认为脚本之间间隔几秒钟 运行 就足够了吗?
这样的命令怎么样?
*/3 * * * * echo "<?php echo 'Start ...';sleep(2);echo Go; ?>"|php /some/script1.php
*/3 * * * * echo "<?php echo 'Start ...';sleep(4);echo Go; ?>"|php /some/script2.php
*/3 * * * * echo "<?php echo 'Start ...';sleep(6);echo Go; ?>"|php /some/script3.php
您也可以将固定等待时间替换为随机等待时间。
尝试使用通用的 sleep(rand(1,10))
而不是 sleep(2)
。
我希望这可能有用
如果您只是希望每个脚本依次执行,第二个脚本在第一个脚本完成后才开始,依此类推,只需将它们全部放在一个 cron 命令中即可。
cron 通过将命令字符串传递给 /bin/sh
来调用每个命令——而 shell 可以很容易地按顺序调用多个命令。
*/3 * * * * /some/script1.php ; /some/script2.php ; /some/script3.php
我有几个脚本 运行 每 3 分钟一次,时间表如下所示:
*/3 * * * * /some/script1.php
*/3 * * * * /some/script2.php
*/3 * * * * /some/script3.php
我假设这些脚本 运行 同时执行,但我希望这些脚本每 3 分钟 运行 但不同时执行一次。请告诉我我怎样才能达到这个目标。
您无法用现有的线路达到此目的,这些线路总是同时 运行。但是,您可以简单地创建一个 "master" 脚本,通过 cron 调用,然后一个接一个地调用这些脚本。
*/3 * * * * /usr/bin/php /some/masterscript.php
masterscript.php:
<?php
exec('/usr/bin/php /some/script1.php');
exec('/usr/bin/php /some/script2.php');
exec('/usr/bin/php /some/script3.php');
?>
编辑:
根据您服务器的设置 - 安装 node.js。您可以每秒设置一个 cron 包。也许这可以帮助..
你可以但不能使用那种语法,而应该使用这种语法:
1,4,7,10,13,16,etc... * * * * /some/script1.php
2,5,8,11,14,17,etc... * * * * /some/script2.php
and so on....
您认为脚本之间间隔几秒钟 运行 就足够了吗? 这样的命令怎么样?
*/3 * * * * echo "<?php echo 'Start ...';sleep(2);echo Go; ?>"|php /some/script1.php
*/3 * * * * echo "<?php echo 'Start ...';sleep(4);echo Go; ?>"|php /some/script2.php
*/3 * * * * echo "<?php echo 'Start ...';sleep(6);echo Go; ?>"|php /some/script3.php
您也可以将固定等待时间替换为随机等待时间。
尝试使用通用的 sleep(rand(1,10))
而不是 sleep(2)
。
我希望这可能有用
如果您只是希望每个脚本依次执行,第二个脚本在第一个脚本完成后才开始,依此类推,只需将它们全部放在一个 cron 命令中即可。
cron 通过将命令字符串传递给 /bin/sh
来调用每个命令——而 shell 可以很容易地按顺序调用多个命令。
*/3 * * * * /some/script1.php ; /some/script2.php ; /some/script3.php