Ответы:
Сначала создайте резервную копию crontab:
crontab -l > my_cron_backup.txt
Тогда вы можете очистить его:
crontab -r
Восстановить:
crontab my_cron_backup.txt
crontab -l
crontab -r
это то, что я искал. Спасибо !
У вас есть root-доступ? Просто пауза cron
sudo /etc/init.d/crond stop
Затем перезапустите его, когда будете готовы
sudo /etc/init.d/crond start
sudo service cron stop
/etc/init.d/cron stop
.
service cron stop
.
Если вы используете vi в качестве редактора, просто войдите :%s/^/#/
в командный режим. Во всех строках (%) он заменяет (s ///) начало строки (^) на хеш (#).
EDITOR=vi; crontab -e
, а затем использовать трюк, описанный выше.
:%s/^#//
Не был доволен вариантами выше, так как они не были одним лайнером.
Отключить 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, и должно работать из коробки без необходимости установки
crontab: usage error: file name must be specified for replace
. Кажется, вы должны указать файл (?) При использовании crontab
без каких-либо параметров (что replace
по умолчанию).
Я понял идею из ответа, предоставленного @segaps
Отключить:
crontab -l | awk '{print "# "$1}' | crontab
Включить:
crontab -l | cut -c 3- | crontab
Единственная проблема с решением, предоставляемым segaps, заключается в том, что он раскомментирует задания, которые уже прокомментировал пользователь.
/tmp
поврежден (и если ваш crontab -e используетmktemp
in/tmp
.