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.

pengguna66638
sumber
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 .

heemayl
sumber
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
Nick Sillito
sumber