Câu trả lời:
Đầu tiên, sao lưu crontab:
crontab -l > my_cron_backup.txt
Sau đó, bạn có thể làm trống nó:
crontab -r
Để khôi phục lại:
crontab my_cron_backup.txt
crontab -l
crontab -r
là những gì tôi đang tìm kiếm. Cảm ơn !
Bạn có quyền truy cập root? Chỉ cần tạm dừng cron
sudo /etc/init.d/crond stop
Sau đó khởi động lại nó khi bạn đã sẵn sàng
sudo /etc/init.d/crond start
sudo service cron stop
/etc/init.d/cron stop
.
service cron stop
.
Nếu bạn đang sử dụng vi làm trình soạn thảo, thì chỉ cần nhập :%s/^/#/
trong chế độ lệnh. Trong tất cả các dòng (%), nó thay thế (s ///) đầu dòng (^) bằng hàm băm (#).
EDITOR=vi; crontab -e
và hơn bạn có thể sử dụng thủ thuật trên.
:%s/^#//
Không hài lòng với các tùy chọn ở trên vì chúng không phải là một lớp lót.
Để vô hiệu hóa crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab
Để kích hoạt crontab -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab
ví dụ sử dụng (được chỉnh sửa để hiển thị nó không vô hiệu hóa bình luận)
$ 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
Đã thử nghiệm điều này trên RHEL và AIX, và sẽ hoạt động tốt mà không cần cài đặt bất cứ thứ gì
crontab: usage error: file name must be specified for replace
. Có vẻ như bạn phải chỉ định một tệp (?) Khi sử dụng crontab
mà không có bất kỳ tham số nào ( replace
theo mặc định).
Tôi có ý tưởng từ câu trả lời được cung cấp bởi @segaps
Để vô hiệu hóa:
crontab -l | awk '{print "# "$1}' | crontab
Để bật:
crontab -l | cut -c 3- | crontab
Vấn đề duy nhất với giải pháp được cung cấp bởi segaps, là nó sẽ bỏ qua các công việc, đã được người dùng nhận xét.
/tmp
đang bị hỏng (và nếu -e crontab của bạn sử dụngmktemp
trong/tmp
.