crontab -lですべてを無効にする方法は?


70

すべてを一時停止したいだけです。にリストされてcrontab -lいるものは実行しないでください。

回答:


63

crontab -e次に、実行したくない各行をコメント化します#


134

まず、crontabをバックアップします。

crontab -l > my_cron_backup.txt

その後、空にすることができます:

crontab -r

復元するには:

crontab my_cron_backup.txt
crontab -l

2
これは、ときに特に便利です/tmp破損している(とあなたのcrontab -eを使用している場合mktempには/tmp
ケビン・リー・

1
+1最後に、これは私のために働いたものです。ありがとう
パヴァン

@alexこれは受け入れられる答えである必要があります
ルイスフェラーオ

crontab -r私が探していたものです。ありがとう!
forzagreen

65

ルートアクセス権はありますか?cronを一時停止する

sudo /etc/init.d/crond stop

その後、準備ができたら再起動します

sudo /etc/init.d/crond start

5
これは、rootを含むすべてのユーザーのcrontabを停止することを前提としています。選択された回答、およびkubanskamacの回答は、現在の(望ましい?)ユーザーに対してのみ行われます。
ケビンK

crondサービスは停止していました。これにより、crondが実行されているかどうかを確認し、再起動する正しい方向が示されました。
ポール

4
あなたがUbuntuのにしている場合は、使用することができますsudo service cron stop
ジョエル・

1
Debianではこれは/etc/init.d/cron stopです。
ファヒムミサ

2
最近のDebianの@Faheemもそうservice cron stopです。
スティーブンキット

10

エディターとしてviを使用している場合は:%s/^/#/、コマンドモードで入力してください。すべての行(%)で、行の先頭(^)をハッシュ(#)に置き換えます(s ///)。


デフォルトのエディターとしてviを使用していない場合は、viの使用を「強制」EDITOR=vi; crontab -eすることができ、上記のトリックを使用できます。
ベトリスタ

2
コメントを解除するには、コマンドは:%s/^#//
-NP01

3

上記のオプションはライナーではなかったため、満足していませんでした。

無効にするには crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab

有効にする crontab -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab

使用例(コメントを無効にしないように編集)

$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh

$ crontab -l|perl -nle 's/^([^#])/# $1/;print'|crontab
$ crontab -l
# Comment
# 0 0 * * 0 /opt/something.sh

$ crontab -l|perl -nle 's/^#\s*([0-9*])/$1/;print'|crontab
$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh

これをRHELとAIXでテストしました。インストールする必要なく、そのまま使用できます。


1
cronjob crontab -l |で特定の詳細を検索することもできます。perl -nle 's / ^#\ s *([0-1 *])/ $ 1 /; print if /.+mytexttofind.+/'
ジェイソン

コメントが影響を受けない理由を説明してください。それらを検出するために使用するパターンは何ですか?
ソパラホデアリエレス

うーん、Debian Jessieの下で次のエラーが出ます:crontab: usage error: file name must be specified for replacecrontabパラメータなしで使用する場合(replaceデフォルト)、ファイル(?)を指定する必要があるようです。
fritzmg

2

私の限られたテストでは、シェルを/ bin / falseに設定すると機能します。あなたはまだ表示されます/opt/job.shあなたのログに実行し、それがNOOPになります。

SHELL=/bin/false

*/1 * * * *    root  /some/job.sh

1

私が知っているUnix / Linuxのフレーバー:

mv /var/spool/cron  /var/spool/cron_is_disabled

この:

  • すべてのユーザーのcrontabを無効にします
  • システム/ etc / crontab(/etc/cron.dailyなど)ではありません
  • 再起動後も持続する
  • ワンライナー、当たり前です:)

1

@segapsが提供する答えからアイデアを得た

無効にするには:

crontab -l | awk '{print "# "$1}' | crontab

有効にする:

crontab -l | cut -c 3- | crontab

segapsが提供するソリューションの唯一の問題は、ユーザーが既にコメントしているジョブのコメントを外すことです。


0

これを行うには、nanoをエディターとして使用します。

sudo env EDITOR=nano crontab -e

#で実行したくない各行をコメントアウトします

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.