Odpowiedzi:
Najpierw utwórz kopię zapasową pliku crontab:
crontab -l > my_cron_backup.txt
Następnie możesz go opróżnić:
crontab -r
Przywrócić:
crontab my_cron_backup.txt
crontab -l
crontab -r
tego szukałem. Dzięki !
Czy masz dostęp do roota? Po prostu zatrzymaj crona
sudo /etc/init.d/crond stop
Następnie uruchom go ponownie, gdy będziesz gotowy
sudo /etc/init.d/crond start
sudo service cron stop
/etc/init.d/cron stop
.
service cron stop
.
Jeśli używasz vi jako edytora, to po prostu wejdź :%s/^/#/
w tryb poleceń. We wszystkich liniach (%) podstawia (s ///) początek linii (^) hashem (#).
EDITOR=vi; crontab -e
, a następnie możesz użyć powyższej sztuczki.
:%s/^#//
Nie był zadowolony z powyższych opcji, ponieważ nie były to jedne linijki.
Wyłączyć crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab
Umożliwić crontab -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab
przykład użycia (edytowany, aby pokazać, że nie wyłącza komentarzy)
$ 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
Przetestowałem to na RHEL i AIX, i powinien działać od razu po instalacji, bez potrzeby instalowania czegokolwiek
crontab: usage error: file name must be specified for replace
. Wygląda na to, że musisz określić plik (?), Jeśli używasz go crontab
bez żadnych parametrów (co jest replace
domyślnie).
Pomysł zaczerpnąłem z odpowiedzi udzielonej przez @segaps
Wyłączyć:
crontab -l | awk '{print "# "$1}' | crontab
Umożliwić:
crontab -l | cut -c 3- | crontab
Jedynym problemem związanym z rozwiązaniem dostarczanym przez segaps jest to, że odkomentuje zadania, które zostały już skomentowane przez użytkownika.
/tmp
jest uszkodzony (a jeśli crontab -e wykorzystujemktemp
w/tmp
.