cron ジョブの削除に役立つ関数を作成しようとしています。ネットからいくつかのクラスを試しましたが、うまくいかなかったので、自分で書いています。コマンドを正しく削除していないという問題です。それを削除するか、ファイルに存在するすべてのcronジョブの半分を削除しています!
これが私の機能です:
function delete_cronjob($command)
{
$outputs = array();
exec('crontab -l',$outputs);
for($i=0;$i<count($outputs);$i++)
{
if ($outputs[$i]==$command)
$outputs[$i]=NULL;
}
shell_exec('crontab -r');
for($i=0;$i<count($outputs);$i++)
{
if ($outputs[$i]!=NULL)
shell_exec('(crontab -l ; echo "'.$outputs[$i].'") |uniq - | crontab -');
}
}
そして、これは私が使用する一種のcronジョブです:
$command='0 0 * * * ssh -p 22 root@192.168.0.121 "cd /home/sally/;./bckp_rstr.bash _ _ 0 1 test root@192.168.0.196:/home/sally/sal_bckp/ 192.168.0.121 22 1 "';
delete_cronjob($command);
どうしたの ?