我有7个cron-jobs,必须以指定的顺序运行!
所以我必须按顺序打电话给他们。但我的问题是,如果我的最后一个cronjob完成,我怎么能触发下一个cronjob?
我想给我写一个触发每个cronjob的脚本但是要触发下一个我需要知道我的上一个cronjob是否结束的脚本。
我更喜欢 PHP 。
答案 0 :(得分:0)
创建一个shell脚本或执行以下操作:
0 */5 * * * php /var/www/html/project1/cron.php && php /var/www/html/project2/cron.php && php /var/www/html/project3/cron.php
如果你想让一个php脚本为你工作并记录它的输出,那就做这样的事情
ini_set('memory_limit','8196M');
$date=date('mdY');
if(!file_exists($date."_ENK.zip"))
{
echo "sh get_files.sh ".$date."_ENK.zip\n";
echo "DOWNLOADING FILE\n";
echo popen("sh get_files.sh ".$date."_ENK.zip >> get_log",'r');
echo "MOVING FILE\n";
echo exec("mv ".$date.".csv ../../data/data.csv");
echo "IMPORTING INTO DATABASE\n";
echo exec("php /var/www/html/project1/index.php Engines dothings");
echo "DUMPING INTO TEMP FOLDER\n";
echo exec("mysqldump -u user db tab > /tmp/tab.sql");
echo "UPDATING\n";
echo exec("mysql -u far_user -ppass -h 10.0.0.1 db_away < /tmp/tab.sql");
echo "CLEANING UP";
echo exec("rm -f /tmp/tab.sql");
echo exec("rm -f ../../data/data.csv");
echo exec("rm -f somefile.zip");
}