web-dev-qa-db-ja.com

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」を削除します。

サーバーからすべてのcronジョブを削除するcrontab -rコマンドを試しましたが、特定のcronジョブを削除したいです。

解決のために私を助けてもらえますか?

37
anumavu
  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です!

58
Greg Hanis

ルートプロンプトタイプから

crontab -e

これで、ファイルを編集して、削除する行を削除できます。ユーザーのプロンプトがある場合、これを使用してユーザーのcrontabを編集することもできます。

ちなみに、cronジョブを/etc/crontabに追加することを好みます。私にはもう少し柔軟に思えます。

21
Rinzwind

ユーザーの表示

waqlehユーザーのcronjobを表示するには、次の構文を使用します。

crontab -u waqleh -l

ルートユーザーCronjobの表示

次のコマンドを入力するだけです:

crontab -l

これにより、crontabスクリプトの内容がリストされます。

/ etc/crontabを表示

Cronjobは、/ etc/crontabファイルからも実行できます。表示するには、次を入力します。

less /etc/crontab

すべてのcronジョブを削除します

場合のみすべてのcronジョブを停止する場合は、次のコマンドで完全に削除できます。

crontab -r

これはcrontabファイル全体を削除するですので、そこに他のcronジョブがリストされている場合は注意してください!

特定のcronジョブを削除します

Cronファイルを開き、削除するcronを削除します

crontab -e

各行はcronジョブを表します。 ctrl + kを使用してcronを削除し、保存して終了できます

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

crontab -lは現在のcrontabジョブをリストします

grep -vいくつかの行をフィルター

crontab -は、印刷されたものをすべてcrontabファイルに追加します。

1
Diego D

引数なしでcrontabを実行し、stdin経由で新しいcrontabにフィードすることができます。

0
geirha