У меня есть 7 cron-заданий, которые должны выполняться в указанном порядке!
Поэтому я должен назвать их по порядку. Но моя проблема в том, как я могу запустить следующий cronjob, если мой последний cronjob закончился?
Я хочу написать мне скрипт, который запускает каждый cronjob, но чтобы запустить следующий, мне нужно знать, закончился ли мой последний cronjob.
я предпочитаю PHP.
либо создайте сценарий оболочки, либо сделайте что-то вроде этого:
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");
}
Других решений пока нет …