Відповіді:
Спочатку створіть резервну копію крона:
crontab -l > my_cron_backup.txt
Тоді ви можете спорожнити його:
crontab -r
Відновити:
crontab my_cron_backup.txt
crontab -l
crontab -r
це те, що я шукав. Дякую !
У вас є кореневий доступ? Просто призупиніть 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
пошкоджений (і якщо ваш кронтаб -e використовуєmktemp
в/tmp
.