У меня есть php-скрипт, который устанавливает задание cron, когда некоторые данные вставляются в базу данных SQL:
<? $output = shell_exec('crontab -l'); file_put_contents('/tmp/crontab.txt', $output.'* * * * * /usr/local/bin/php /home/dldl1330/public_html/new/mailchimp.php'.PHP_EOL); echo exec('crontab /tmp/crontab.txt'); ?>
Это задание cron выполняет другой скрипт, который синхронизирует SQL DB с mailchimp. В этом скрипте mailchimp php он удаляет вкладку cron:
echo exec('crontab -r');
Как только это произойдет, я потеряю все задания на вкладке cron (и удаляет электронное письмо, которое отправляется по электронной почте после каждого задания cron), как я могу это сделать, поэтому /home/dldl1330/public_html/new/mailchimp.php
выше строка удаляет /home/dldl1330/public_html/new/mailchimp.php
cron job?
Я использовал вышеупомянутую рекомендацию и придумал решение, я не уверен, насколько эффективным или правильным он … приветствуется для комментариев.
Примечание. Раздел «Поиск строки» находится там только для моих целей отладки / обучения
<?php //get contents of cron tab $output = shell_exec('crontab -l'); echo "<pre>$output</pre>"; //Find string $cronjob = ('* * * * * /usr/local/bin/php /home/dldl1330/public_html/new/mailchimp.php'); if (strstr($output, $cronjob)) { echo 'found'; } else { echo 'not found'; } //Copy cron tab and remove string $newcron = str_replace($cronjob,"",$output); echo "<pre>$newcron</pre>"; file_put_contents('/tmp/crontab.txt', $newcron.PHP_EOL); echo exec('crontab /tmp/crontab.txt'); ?>