0
我有7個cron-jobs必須按照指定的順序運行!如果另一個結束,開始一個Cronjob?
所以我必須調用它們才能。但是我的問題是,如果我的最後一個cronjob完成了,我怎麼能觸發下一個cronjob?
我想我寫一個腳本,每次觸發,但的cronjob觸發下一個我需要知道,如果我最後的cronjob已經結束。
我喜歡PHP。
我有7個cron-jobs必須按照指定的順序運行!如果另一個結束,開始一個Cronjob?
所以我必須調用它們才能。但是我的問題是,如果我的最後一個cronjob完成了,我怎麼能觸發下一個cronjob?
我想我寫一個腳本,每次觸發,但的cronjob觸發下一個我需要知道,如果我最後的cronjob已經結束。
我喜歡PHP。
可以創建一個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");
}
這聽起來就像你只需要一個包含7個腳本的cronjob。 – jeroen
如果他們必須以預定義的順序運行,將它們加入* one *腳本不是更聰明嗎? –
的最快方法(和hackish的),如果你沒有太多的cron作業是使用分號像這樣列出它們在corntab:「* * * * * cron1_command; cron2_command >> /ptah/to/log.txt」 –