繁体   English   中英

使用PHP删除单个cron作业

[英]Deleting individual cron jobs using PHP

我有一个php脚本,一旦将一些数据插入SQL数据库,就会设置一个cron作业:

<?
$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 cron工作?

我使用了上述建议并想出了一个解决方案,我不确定它是多么高效或正确....欢迎提出意见。

注意:// Find字符串部分仅用于我的调试/学习目的

<?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');

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM