[英]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 -r
, crontab -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.