当前位置: 首页>>技术教程>>正文


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

问题描述

我为我的网站创建了 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 作业。

你能帮我解决吗?

最佳思路

  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!

次佳思路

从根提示类型

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 文件中。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12395.html,未经允许,请勿转载。