Linuxコマンドを使用して単一のcronジョブを削除または削除するにはどうすればよいですか?


40

以下にリストされているサイトの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ジョブを削除したいです。

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

回答:


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
Greg: Ask Ubuntuへようこそ!;-)あなたは私の見直してもらえ編集をしても見直す編集ヘルプ ...将来的にはあなたの答えの可読性を向上させるために;-)
Fabby

4
1.を置き換えてください(crontab -u mobman -l 2> / dev / null; echo "* / 5 * * * * perl /home/mobman/test.pl")でcrontabにジョブを追加するには| crontab -u mobman-(参照:stackoverflow.com/questions/4880290/…
ヤシルG

1
@YasiruG は、既存のcronジョブがない場合にcrontab -l 2 > /dev/nullメッセージを表示したくない場合にのみ必要だと思いますno crontab for <user>。ところで、-u mobman現在のユーザーにcronジョブを追加する場合、オプションは必要ありません。
baptx

22

ルートプロンプトから

crontab -e

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

ところで:にcronjobsを追加することを好み/etc/crontabます。私にはもう少し柔軟に思えます。


これはスクリプトのウィザードよりも簡単で理にかなっているように見えますが、もっとウィザードのようになればと思います。
ジェイソンセブリング

手動での変更には
最適です

7

ユーザーの表示

次の構文を使用して、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を削除し、保存して終了できます


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

@anumavu、そうですcrontab -l、あなたはすでに持っているようにでそれを読んで、リストからジョブを削除し、それをに書き戻しcrontabます。
ガイラ14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.