如何使用linux命令删除或删除单个cron作业?


39

我为下面列出的网站创建了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作业。例如,我想0 0 * * * wget php -q http://www.example.com/event_reminder.php从服务器中删除cron作业“ ”。

我尝试了crontab -r从服务器中删除所有cron作业的命令,但是我想删除特定的cron作业。

你能帮我解决吗?

Answers:


61
  1. 要将作业添加到crontab:

    (crontab -u mobman -l ; echo "*/5 * * * * perl /home/mobman/test.pl") | crontab -u mobman -
    
  2. 要从crontab中删除作业:

    crontab -u mobman -l | grep -v 'perl /home/mobman/test.pl'  | crontab -u mobman -
    
  3. 从crontab中删除所有内容:

    crontab -r
    

没什么棘手的:-Linux中的STDOUT!


1
格雷格:欢迎来问Ubuntu!;-)能否请您查看我的编辑内容,并同时查看编辑帮助以提高将来答案的可读性... ;-)
Fabby

4
请替换1.用(crontab -u mobman -l 2> / dev / null; echo“ * / 5 * * * * perl /home/mobman/test.pl”)向crontab添加作业。crontab -u mobman-(ref:stackoverflow.com/questions/4880290/…
Yasiru G

1
@YasiruG我认为crontab -l 2 > /dev/null只有在您不希望看到no crontab for <user>没有现有cron作业的消息时才需要。顺便说一句,-u mobman如果要为当前用户添加cron作业,则不需要此选项。
baptx

21

从根提示键入

crontab -e

现在,您可以编辑文件并删除要删除的行。如果您有该用户的提示,也可以使用它来为用户编辑crontab。

顺便说一句:我更喜欢将cronjobs添加到/etc/crontab。对我来说似乎更灵活一些。


这似乎比脚本向导更容易并且更有意义,但是我希望我更像向导。
Jason Sebring

非常适合进行手动更改,但对于自动化而言,请检查上面的脚本
AFP_555 '18

7

查看用户Cronjob

使用以下语法查看waqleh用户的cronjob:

crontab -u waqleh -l

查看根用户Cronjob

只需键入以下命令:

crontab -l

这应该列出crontab脚本的内容。

查看/ etc / crontab

也可以从/ etc / crontab文件运行cronjob。要查看它,请输入:

less /etc/crontab

删除所有cron作业

当且仅当您要停止所有cron作业时,才可以使用以下方法将其完全删除:

crontab -r

将删除整个crontab文件,因此如果其中列出了其他cron作业,请务必小心!

删除特定的Cron作业

打开cron文件并删除要删除的cron

crontab -e

每行代表一个cron工作。您可以使用ctrl + k删除任何cron,然后保存并退出


1
crontab -l | grep -v 'wget php -q http://www.example.com/event_reminder.php' | crontab -

crontab -l 列出当前的crontab作业

grep -v 过滤一些线

crontab - 将所有打印的内容添加到crontab文件中。


0

您可以crontab不带参数运行,并通过stdin将其提供给新的crontab。


@qeirha ..我想从服务器中删除特定的cron作业
anumavu 2014年

@anumavu,对,因此您可以crontab -l像以前一样用读入,从列表中删除作业,然后将其写回到crontab
盖尔哈2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.