问题描述
我为我的网站创建了 cron 作业,如下所示,它们运行良好。我使用这个 PHP 脚本打印所有 cron 作业:
$cronfiles=exec('crontab -l',$output);
echo "<pre>";
print_r($output);
哪个输出:
[0] => 0 0 * * * wget php -q http://www.example.com/report_send.php
[1] => 0 0 * * * wget php -q http://www.example.com/event_reminder.php
[2] => 0 0 * * * wget php -q http://www.example.com/user_reminder.php
[3] => * * * * * wget php -q http://www.example.com/cleardata.php
现在我想通过命令从我的服务器中删除或删除单个 cron 作业。例如,我想从服务器中删除 cron 作业“0 0 * * * wget php -q http://www.example.com/event_reminder.php
”。
我尝试了 crontab -r
命令,该命令从我的服务器中删除了所有 cron 作业,但我想删除特定的 cron 作业。
你能帮我解决吗?
最佳思路
-
要将作业添加到 crontab:
(crontab -u mobman -l ; echo "*/5 * * * * perl /home/mobman/test.pl") | crontab -u mobman -
-
要从 crontab 中删除作业:
crontab -u mobman -l | grep -v 'perl /home/mobman/test.pl' | crontab -u mobman -
-
从 crontab 中删除所有内容:
crontab -r
没有什么是棘手的:-
在 Linux 中是 STDOUT!
次佳思路
从根提示类型
crontab -e
您现在可以编辑文件并删除要删除的行。如果您有该用户的提示,您也可以使用它来编辑该用户的 crontab。
顺便说一句:我更喜欢将 cronjobs 添加到 /etc/crontab
。对我来说似乎更灵活一些。
第三种思路
查看用户 Cronjob
使用以下语法查看 waqleh 用户的 cronjob:
crontab -u waqleh -l
查看当前用户的 Cronjob
只需键入以下命令:
crontab -l
特定用户的 cron 文件
crontab -u USERNAME -l
这应该列出 crontab 脚本的内容。
查看 /etc/crontab
一个 cronjob 也可以从 /etc/crontab 文件运行。要查看它,请输入:
less /etc/crontab
删除所有 cron 作业
当且仅当您想停止所有 cron 作业时,您可以使用以下命令完全删除它们:
crontab -r
这将删除当前用户的整个 crontab 文件,因此如果您在其中列出了其他 cron 作业,请小心!
添加/编辑/删除 cron 作业
您用户的 cron 文件
crontab -e
特定用户的 cron 文件
crontab -u USERNAME -e
每行代表一个 cron 作业。您可以删除任何 cron(如果您使用的是 nano,请单击 ctrl+k),然后保存并退出
第四种思路
crontab -l | grep -v 'wget php -q http://www.example.com/event_reminder.php' | crontab -
crontab -l
列出当前的 crontab 作业
grep -v
过滤某行
crontab -
将所有打印的内容添加到 crontab 文件中。