Вопрос: Как отключить все в crontab -l?


Я просто хочу все приостановить. Не выполняйте ничего, что указано в crontab -l,


49
2017-12-14 22:34


Источник




Ответы:


crontab -e затем прокомментируйте каждую строку, которую вы не хотите запускать с помощью #,


46
2017-12-14 22:39





Во-первых, резервное копирование crontab:

crontab -l > my_cron_backup.txt

Затем вы можете его очистить:

crontab -r

Восстановить:

crontab my_cron_backup.txt
crontab -l

97
2017-12-14 22:41



Это особенно полезно, когда /tmp (и если ваш crontab -e использует mktemp в /tmp, - Kevin Lee
+1 Наконец, это то, что сработало для меня. спасибо - Pavan


У вас есть root-доступ? Просто приостановить cron

sudo /etc/init.d/crond stop

Затем перезапустите его, когда будете готовы

sudo /etc/init.d/crond start

55
2017-12-14 22:46



Предполагается, что вы хотите остановить crontab для всех пользователей, включая root. Выбранный ответ и ответ kubanskamac будут делать это только для текущего (желаемого?) Пользователя. - Kevin K
наш сервис для новорожденных был остановлен. Это указывало нам в правильном направлении, чтобы проверить, работает ли ковер, и перезапустить. - Paul
Если вы используете Ubuntu, вы можете использовать sudo service cron stop - Joel
В Debian это /etc/init.d/cron stop, - Faheem Mitha
@Faheem на Debian в настоящее время это также service cron stop, - Stephen Kitt


Если вы используете vi в качестве редактора, просто введите :%s/^/#/ в командном режиме. Во всех строках (%) он заменяет (s ///) начало строки (^) хешем (#).


10
2017-12-15 10:46



Если вы не используете vi в качестве редактора по умолчанию, вы можете «принудительно» использовать vi как EDITOR=vi; crontab -e, и вы можете использовать трюк выше. - Betlista
Чтобы раскомментировать, команда :%s/^#// - NP01


Не был доволен вариантами выше, поскольку они не были одним лайнером.

Отключить  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 и должно работать из коробки без необходимости устанавливать


2
2017-09-12 10:31



Также можно найти конкретные детали в cronjob crontab -l | perl -nle 's / ^ # \ s * ([0-1 *]) / $ 1 /; print if /.+mytexttofind.+/' - Jason
Не могли бы вы объяснить, почему комментарии не затронуты? Каков шаблон, который вы используете для их обнаружения? - Sopalajo de Arrierez


В моем ограниченном тестировании установка оболочки в / bin / false работает. Вы все равно увидите /opt/job.sh выполнение в ваших журналах, но это будет noop:

SHELL=/bin/false

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

2
2017-10-13 21:23





В любом вкусе Unix / Linux, о котором я знаю:

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

Эта:

  • отключает crontabs всех пользователей
  • но не система / etc / crontab (/etc/cron.daily и т. д.)
  • сохраняется перезагрузка
  • это однострочный, дух :)

1
2017-11-05 17:12





Я получил идею от ответа, предоставленного @segaps

Отключить:

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

Включить:

crontab -l | cut -c 3- | crontab

Единственная проблема с решением, предоставляемым segaps, заключается в том, что он раскомментирует задания, которые уже комментируются пользователем.


0
2018-06-29 13:49





Для этого, используя nano в качестве редактора:

sudo env EDITOR=nano crontab -e

затем прокомментируйте каждую строку, которую вы не хотите запускать с #


0
2017-12-13 21:32