Mengapa `crontab -` menghapus crontab, dan bisakah itu dibatalkan?

8

Aku bergegas dan lupa e di crontab -esebelum aku memukul Enter.

Sebuah prompt muncul, jadi saya menutup dengan Ctrl+ D, sama seperti saya biasanya keluar dari prompt input.

Sekarang, tanpa peringatan, seluruh crontab saya kosong.

Mengapa? Logika apa yang menyebabkan ini terjadi? Bagaimana saya harus menutup prompt selain Ctrl+ Dagar tidak ada yang disimpan?

Redsandro
sumber
2
Apa yang dikatakan prompt?
Michael Hampton

Jawaban:

7

Control+Cdalam hal ini akan membatalkan crontabdan tidak menghapus entri crontab saat ini. Jika tidak, telanjang -adalah indikasi umum pada Unix bahwa input harus dibaca dari input standar, dan Control+Dmenutup input standar, menghasilkan file crontab kosong, karena tidak ada yang disalurkan pada input standar.

Entri crontab pengguna di sepanjang baris

@daily crontab -l > $HOME/.cron.`hostname`

dapat membantu melawan oopsi di masa mendatang dengan menyediakan salinan cadangan data crontab (atau Anda dapat menjadi liar dengan kontrol versi, atau betapapun kompleksnya Anda menginginkan pencadangan).

thrig
sumber
15

Anda mengganti crontab Anda dengan konten dari stdin, yang kosong. Ini pada dasarnya sama dengan crontab < /dev/null.

Menekan Ctrl + C mungkin merupakan kebiasaan yang lebih baik.

Crontab Anda kemungkinan besar hilang. Cadangan mungkin ada di suatu tempat /var/spool/cron, tetapi saya tidak tahu ada cron daemon yang mengelola cadangan. Anda harus mengatur cadangan /var/spool/cronjika itu penting bagi Anda.

rvs
sumber