menghapus file tab cron dan perlu memulihkannya

11

Saya menjalankan crontab -r alih-alih crontab -e dan menghapus file crontab saya. Saya tidak punya cadangan dan baru untuk memulihkan file yang dihapus.

Apakah ini mungkin?

Terima kasih,

Peter

gWaldo
sumber
7
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!

rumz
sumber
Pendekatan hebat!
Alex
5

Pertama-tama: Selalu buat cadangan!

Tapi, sangat mudah untuk berbaur crontab -rdan crontab -e. Saya hanya melakukan ini sendiri.

Itu yang saya lakukan:

Anda dapat mencoba melihat / var / log / cron dan membangun crontab Anda lagi.

  1. Lihatlah logfile
  2. Ambil perintah pertama dan lakukan grep commandname1 /var/log/cron
  3. Cari tahu sistematis di balik waktu perintah itu dijalankan
  4. Masukkan entri itu ke crontab baru Anda
  5. mengeksekusi cat /var/log/cron | grep -v commandname1. Ini akan mengecualikan perintah1 yang sudah Anda bahas.
  6. Ambil perintah berikutnya dan ambil untuk itu
  7. Cari tahu sistematis di balik waktu perintah kedua dijalankan
  8. masukkan entri itu ke crontab baru Anda
  9. menjalankan cat /var/log/cron | grep -v commandname1 | grep -v commandname2
  10. Ulangi sampai Anda menutupi semua perintah

Sekarang Anda juga harus menjalankan grep pada cronlog lama untuk mencari pekerjaan yang mungkin dijalankan hanya sekali dalam sebulan.

Alex
sumber
1
Setidaknya pada Ubuntu (tidak yakin tentang platform lain yang menggunakan anacron / Vixie cron) log disimpan /var/log/syslog/*.
Timothy Gu
1
Sebelum Anda secara tidak sengaja menghapus sesuatu, selalu buat cadangan!
Dávid Horváth
4

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:

perl ~/sorttv/sorttv.pl

/usr/local/bin/flexget

bash ~/scripts/sort_sports.sh

~/scripts/play_recently_added.sh
Dan Green-Leipciger
sumber
1
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.

Geo Ego
sumber
1

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.

KR
sumber
Itu tidak membantu dengan masalah segera ...
vonbrand
0

Saya kira tidak. Saatnya untuk mulai membuat cadangan file penting ini (dengan yang lainnya di / etc / var / spool / home ...).

Dom
sumber