Nonaktifkan opsi hapus crontab di CLI


13

Bagaimana cara menonaktifkan perintah tertentu, misalnya crontab -r?

Itu terjadi pada saya dua kali sudah saya tidak sengaja menjalankan itu, karena Ekunci saya di sebelah Rkunci. Kesalahan ketik kecil itu sudah cukup dan crontab Anda hilang.


2
Jangan lupa untuk membuat cadangan file penting!
wjandrea

Tentu, saya punya @daily zip -r /home/./scripts/cronjobs-all.zip / var / spool / cron / crontab
user66638

Sistem kontrol revisi kode sumber seperti Mercurial atau Git akan digunakan untuk mengelola file skrip dan menjaga keamanan dari perubahan atau penghapusan yang tidak disengaja. Anda bahkan tidak memerlukan repositori jarak jauh untuk salah satu dari keduanya. :-)
David Foerster

Jawaban:


16

Gunakan pembungkus di sekitar crontabperintah, misalnya fungsi ini akan melakukan:

crontab () { [[ $@ =~ -[iel]*r ]] && echo '"r" not allowed' || command crontab "$@" ;}

Fungsi ini memeriksa jika -rada dalam argumen crontab; jika demikian, keluar dengan pesan "r" not allowed, jika tidak jalankan perintah.

Masukkan ke dalam Anda ~/.bashrcuntuk memuatnya saat inisialisasi semua bashsesi interaktif .


27

Saya sarankan Anda memasukkan

alias crontab="crontab -i"

di ~/.bashrcfile Anda (mulai shell baru sebelum pengujian!)

Ini berarti bahwa setiap kali Anda menjalankan crontab, Anda selalu memilih opsi "-i". Jika sekarang Anda memberikan crontab -rperintah, itu diproses di crontab -ir, yang meminta sebelum menghapus file crontab:

nick@serv2:~$ crontab -r
crontab: really delete nick's crontab? (y/n) n
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.