如何运行3个php脚本在不同的时间,每30分钟作为cron作业


How to run 3 php scripts in different times, every 30 minutes as cron job?

嗯,

我有3个不同的php脚本,实际上它是由一个cron作业运行,但我也有3个条目在我的cron文件,我想只有一个。我会试着解释:

1 -文件在我的数据库中运行一个查询,并在数据库中保存一些数据。(几秒钟)2 -运行2号脚本,这将在我的web服务器内创建2个新的配置文件。(执行时间超过1分钟)3 -第三个文件打开ssh连接并在服务器上执行一些命令,它会将步骤2生成的文件放入服务器并重新加载服务器。

实际情况:

我每次执行3个脚本,所有3个脚本需要每30分钟运行一次,然后我运行第一个,5分钟后我运行第二个,最后15分钟后我运行了脚本2,我运行了脚本3。

它工作完美,但我想做的每一件事在一个单一的php脚本,是可能的,只给我的cron一个调用?

如果所有的脚本都依赖于前一个脚本已经完成了它的工作,那么您希望只以固定的间隔运行第一个脚本,然后让该脚本依次执行其他两个脚本。

stage1.php:

<?php
... do important stuff...
include('stage2.php');
include('stage3.php');

这样,第二个和第三个脚本将不会开始运行,直到第一个脚本完成它必须做的事情,并且如果在第一个序列中出现故障,则给您机会中止整个事情。

任何其他方式都是非常有吸引力的。考虑以下序列:

  • 脚本#1运行备份
  • 脚本#2将备份文件传输到另一个服务器
  • 脚本#3清理备份

由于某种原因,脚本#1运行了很长时间,以至于脚本#2在备份完成之前就开始传输备份文件。由于网络繁忙,文件传输需要额外的时间,所以现在您已经运行了备份,它正在被传输到另一个服务器,清理脚本现在已经消失并删除了脚本#1正在制作的.tar.gz。