Cara memulihkan .bash_history yang hilang karena disk penuh 100%?

1

Dua sesi Putty dibuka untuk Linux Debian 6. File log mengarah ke disk lengkap. Riwayat bash dari seluruh sesi shell tidak ada, dan bahkan lebih dari itu (Ini mungkin disebabkan oleh mode penulisan yang diblokir, dengan blok terakhir terputus)

  • Apakah ada cara pemulihan atau file riwayat duplikat?
  • Apakah Anda memiliki cron-job running yang secara teratur mencadangkan bash-history Anda?
Lorenz Lo Sauer
sumber
Sesi-sesinya berakhir kemudian sejarahnya hilang.
Ramhound
Sial, kehilangan sejarah bash saya,
sayang

Jawaban:

3

Kecuali Anda telah membuat cadangan sendiri, saya pikir Anda kurang beruntung. Saya ragu distro mana pun yang menggunakan pengaturan default yang mendukung sejarah, tetapi tanpa memeriksa sistem Anda secara terperinci, mustahil untuk mengatakannya dengan pasti.

Namun, jika sesi masih berjalan , Anda bisa mencoba menjalankan historyperintah. Saya cukup yakin itu hanya membaca dari ~/.bash_history, tetapi mungkin itu menyimpan dalam memori sampai perintah selanjutnya?

Anda juga dapat menyalin output shell ke file, dan grepsetidaknya untuk memulihkan beberapa perintah terakhir.

Mengenai cadangan, saya pribadi menemukan bahwa GitHub adalah tempat yang tepat untuk .bash_history . Sedikit berlebihan bagi kebanyakan orang, mungkin, tetapi itu membuat perintah umum selalu siap.

l0b0
sumber
Entri histori Bash dikomit ke disk hanya sesekali secara default; jika Anda belum menutup sesi yang Anda minati, dan dengan asumsi Anda belum melakukan export PROMPT_COMMAND='history -a'atau sesuatu yang sama mengerikannya, maka melakukan historymungkin memberi Anda setidaknya seratus atau lebih baris terakhir dari apa yang akan hilang ke dalam ~ / .bash_history. Tidak ada salahnya untuk mencoba, sekali lagi dengan asumsi kerang atau kerang yang dimaksud belum terbunuh; jika sudah, saya khawatir Anda SOL.
Aaron Miller
Juga, +1 untuk kesesatan menempatkan di .bash_historybawah VC ...
Aaron Miller
@ AaronMiller afaikt, ini adalah ringkasan perintah. Jadi tidak ada ikal token dan 'bahan sensitif' lainnya. Dan sayangnya, sesi itu terbunuh sayangnya.
Lorenz Lo Sauer
@LoSauer Oh, saya tidak mengatakan itu adalah risiko keamanan khususnya, setidaknya tidak bagi siapa pun yang mencuci tangannya setelah pergi ke toilet dan tidak memasukkan kata sandi dalam baris perintahnya - hanya saja gagasan untuk meletakkan file negara seperti itu di bawah kontrol versi menurut saya agak menyimpang. (Bukannya saya tidak akan mempertimbangkan untuk melakukannya, dalam keadaan yang membuatnya berguna.)
Aaron Miller
@AaronMiller Dua hal yang memastikan tidak ada bahan sensitif: Setiap baris ditinjau sebelum melakukan (untuk menggeneralisasi dan menambahkan tag), dan HISTCONTROLberisi ignorespace.
l0b0