web-dev-qa-db-ja.com

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

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

73
Alex

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

65
gregf

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

crontab -l > my_cron_backup.txt

次に、それを空にすることができます:

crontab -r

復元するには:

crontab my_cron_backup.txt
crontab -l
142
kubanczyk

Rootアクセスがありますか? cronを一時停止して

Sudo /etc/init.d/crond stop

準備ができたら再起動します

Sudo /etc/init.d/crond start
67
muffinista

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

10
andunix

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

無効にするには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でこれをテストしました。何もインストールする必要なく、そのまま使用できます。

3
segaps

私の限られたテストでは、シェルを/ bin/falseに設定すると機能します。 /opt/job.shログで実行中ですが、何も起こりません:

Shell=/bin/false

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

私が知っているUnix/Linuxのどんなフレーバーでも:

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

この:

  • すべてのユーザーのcrontabを無効にします
  • システム/ etc/crontab(/etc/cron.dailyなど)は除く
  • 再起動後も持続する
  • ワンライナーです。
1
kubanczyk

@segapsから提供された回答からアイデアを得ました

無効にするには:

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

有効にする:

crontab -l | cut -c 3- | crontab

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

1
Sarvsav Sharma

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

Sudo env EDITOR=nano crontab -e

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