すべてを一時停止したいだけです。 crontab -l
に記載されているものを実行しないでください。
crontab -e
次に、実行したくない各行を#
でコメント化します。
まず、crontabをバックアップします。
crontab -l > my_cron_backup.txt
次に、それを空にすることができます:
crontab -r
復元するには:
crontab my_cron_backup.txt
crontab -l
Rootアクセスがありますか? cronを一時停止して
Sudo /etc/init.d/crond stop
準備ができたら再起動します
Sudo /etc/init.d/crond start
エディターとしてviを使用している場合は、:%s/^/#/
コマンドモードで。すべての行(%)で、行の先頭(^)をハッシュ(#)に置き換えます(s ///)。
上記のオプションは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でこれをテストしました。何もインストールする必要なく、そのまま使用できます。
私の限られたテストでは、シェルを/ bin/falseに設定すると機能します。 /opt/job.sh
ログで実行中ですが、何も起こりません:
Shell=/bin/false
*/1 * * * * root /some/job.sh
私が知っているUnix/Linuxのどんなフレーバーでも:
mv /var/spool/cron /var/spool/cron_is_disabled
この:
@segapsから提供された回答からアイデアを得ました
無効にするには:
crontab -l | awk '{print "# "$1}' | crontab
有効にする:
crontab -l | cut -c 3- | crontab
Segapsによって提供されるソリューションの唯一の問題は、ユーザーがすでにコメントしているジョブのコメントが外されることです。
これを行うには、nanoをエディターとして使用します。
Sudo env EDITOR=nano crontab -e
次に、実行したくない各行を#でコメント化します。