簡體   English   中英

使用PHP刪除單個cron作業

[英]To Delete single cron job using PHP

我正在使用php命令設置cron作業

<?php
   echo exec('echo -e "`crontab -l`\n* * * * *  /usr/local/bin/curl path" | crontab -');
?>

上面的命令將添加cronjob,但是我想刪除給定路徑的特定cronjob,所以我嘗試了

<?php
 echo exec('echo -e "`crontab -r`\n1 * * * *  /usr/local/bin/curl path" | crontab -');
 ?>

但是它會刪除所有具有電子郵件ID的cronjob。是否有辦法刪除特定的cron作業?

如您crontab -rcrontab -r刪除所有cron作業,以刪除一個cron選項卡,如下所示可能會起作用:

<?php
// php is weird sometimes
// the output is an array split on new lines
exec('crontab -l', $data);
// this is the one you are replacing
$val = '*/30 * * * * /path/to/awstats.pl -update -config=myconfig';
// find it in the array
$key = array_search($del_val, $data);
// key is false if not found
if($key !== false){
  unset($data[$key]);
}
// put the data back into the crontab
exec ('echo "'.implode("\n", $data).'" | crontab -');
$match = 'yourpath';
exec('crontab -l 2>&1 | grep -v '.$match.' |  sort - | crontab -');

這將列出crontab,匹配您要刪除的行以外的所有內容,然后將該匹配項通過管道傳輸回以創建新的crontab。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM