Saya menjalankan crontab -r alih-alih crontab -e dan menghapus file crontab saya. Saya tidak punya cadangan dan baru untuk memulihkan file yang dihapus.
opsi untuk mengedit dan menghapus tidak boleh berada tepat di sebelah satu sama lain di keyboard. Terlalu mudah untuk membuat kesalahan dengan cepat.
einstiien
itulah yang terjadi pada saya.
Jawaban:
9
Coba lihat / var / log / cron untuk melihat apa yang telah berjalan dan kemudian coba buat ulang crontab dari situ. Ini berantakan tetapi Anda harus dapat mengembalikan semua yang sebelumnya dijalankan. Namun, tidak banyak keberuntungan untuk item baru. Semoga berhasil!
Mengapa ini diberikan -1? Itu jawaban langsung untuk pertanyaan itu.
Dan Green-Leipciger
Saya telah menggunakan skrip Anda. Luar biasa, terima kasih banyak!
MeV
Script PHP tidak dengan benar untuk perintah yang mengandung kurung tutup. Diperbaiki dan porting ke bash:zgrep -F "($USER) CMD (" /var/log/syslog* | cut -d\( -f3- | sort -u | while read cmd ; do echo ${cmd::-1} ; done
Splitlocked
1
Anda punya opsi, tetapi tidak ada yang sangat cantik. Jika Anda belum memikirkannya, jika Anda memiliki versi terbaru pada mesin pengembangan, Anda dapat menyalinnya dari sana ... Saya hanya mengatakan itu karena saya sering lupa tentang salinan yang mungkin ada di komputer lain, jadi Saya berasumsi bahwa Anda sudah mencobanya.
Jika file Anda terlalu banyak dikustomisasi untuk membuatnya mudah dibangun kembali, Anda selalu dapat mencoba beberapa forensik tingkat rendah. Coba googling untuk tutorial yang berbasis di sekitar sleuthkit dan UFS Explorer. Orang yang menggunakan alat ini menemukan tingkat yang sangat bervariasi dalam hal kemudahan penggunaan dan tingkat keberhasilan, jadi seperti biasa, YMMV.
Ugh tidak bisa mengirim komentar pada pertanyaan awal, tapi rekan kerja hanya menunjukkan alat yang hebat: membuat alias dalam apa pun yang .profileAnda gunakan untuk crontabmenjadi crontab -i. The -ibendera meminta konfirmasi sebelum menghapus.
Jadi, jika Anda melakukannya crontab -eakan melanjutkan untuk mengedit seperti biasa, tetapi jika Anda secara tidak sengaja crontab -rAnda akan disambut dengan konfirmasi konfirmasi.
Jawaban:
Coba lihat / var / log / cron untuk melihat apa yang telah berjalan dan kemudian coba buat ulang crontab dari situ. Ini berantakan tetapi Anda harus dapat mengembalikan semua yang sebelumnya dijalankan. Namun, tidak banyak keberuntungan untuk item baru. Semoga berhasil!
sumber
Pertama-tama: Selalu buat cadangan!
Tapi, sangat mudah untuk berbaur
crontab -r
dancrontab -e
. Saya hanya melakukan ini sendiri.Itu yang saya lakukan:
Anda dapat mencoba melihat / var / log / cron dan membangun crontab Anda lagi.
grep commandname1 /var/log/cron
cat /var/log/cron | grep -v commandname1
. Ini akan mengecualikan perintah1 yang sudah Anda bahas.cat /var/log/cron | grep -v commandname1 | grep -v commandname2
Sekarang Anda juga harus menjalankan grep pada cronlog lama untuk mencari pekerjaan yang mungkin dijalankan hanya sekali dalam sebulan.
sumber
/var/log/syslog/*
.Skrip untuk pemulihan crontab penuh
Saya membuat skrip PHP yang melakukan pemulihan penuh terhadap crontab Anda, berdasarkan log.
Ini output contoh tunggal dari setiap perintah cron dijalankan oleh pengguna selama minggu terakhir.
Saya taruh di sini
https://github.com/dangreenisrael/recover_crontab
Berikut adalah contoh keluaran:
sumber
zgrep -F "($USER) CMD (" /var/log/syslog* | cut -d\( -f3- | sort -u | while read cmd ; do echo ${cmd::-1} ; done
Anda punya opsi, tetapi tidak ada yang sangat cantik. Jika Anda belum memikirkannya, jika Anda memiliki versi terbaru pada mesin pengembangan, Anda dapat menyalinnya dari sana ... Saya hanya mengatakan itu karena saya sering lupa tentang salinan yang mungkin ada di komputer lain, jadi Saya berasumsi bahwa Anda sudah mencobanya.
Jika file Anda terlalu banyak dikustomisasi untuk membuatnya mudah dibangun kembali, Anda selalu dapat mencoba beberapa forensik tingkat rendah. Coba googling untuk tutorial yang berbasis di sekitar sleuthkit dan UFS Explorer. Orang yang menggunakan alat ini menemukan tingkat yang sangat bervariasi dalam hal kemudahan penggunaan dan tingkat keberhasilan, jadi seperti biasa, YMMV.
sumber
Ugh tidak bisa mengirim komentar pada pertanyaan awal, tapi rekan kerja hanya menunjukkan alat yang hebat: membuat alias dalam apa pun yang
.profile
Anda gunakan untukcrontab
menjadicrontab -i
. The-i
bendera meminta konfirmasi sebelum menghapus.Jadi, jika Anda melakukannya
crontab -e
akan melanjutkan untuk mengedit seperti biasa, tetapi jika Anda secara tidak sengajacrontab -r
Anda akan disambut dengan konfirmasi konfirmasi.sumber
Saya kira tidak. Saatnya untuk mulai membuat cadangan file penting ini (dengan yang lainnya di / etc / var / spool / home ...).
sumber