Come trovare quali file e cartelle sono stati eliminati di recente in Linux?


23

Sto avendo una cartella particolare ( /home/sam/officedocuments) che contiene centinaia di cartelle e file. Penso di aver eliminato alcuni file e cartelle per errore ma non ne sono sicuro.

Come trovare quali file / cartelle erano:

  • cancellato di recente in Linux?
  • cambiato di recente in Linux?

Voglio solo sapere quali file e cartelle sono stati eliminati. Il recupero di quei file e cartelle cancellati non è importante per me.

Sistema operativo: CentOS


1
Dovresti dirci quale filesystem stai usando. Ad esempio con ext2, ext3 ed ext4 Probabilmente potresti usare l' ext3greputilità per trovare informazioni sui file eliminati. Con alcuni script dovrebbe essere possibile mettere insieme una semplice applicazione che elenca i file eliminati in base a una directory specifica. Queste utilità necessitano tuttavia di un accesso non elaborato al disco e, in quanto tali, sono estremamente pericolose se non utilizzate correttamente ( le operazioni di sola lettura senza blocco dovrebbero essere completamente sicure se si ricorda che la scrittura su disco nello stesso momento potrebbe causare all'operazione corrente di restituire dati non corretti / errati ).
GoFundMonica - codidact.org

Risposte:


3

... è cambiato di recente in Linux?

Utilizzare findper cercare in base al tempo di modifica. Ad esempio, per trovare i file toccati negli ultimi 3 giorni:

find /home/sam/officedocuments -mtime -3

Per "più di 3 giorni", utilizzare +3.

... cancellato di recente in Linux?

Praticamente impossibile. Quando un file viene eliminato, è semplicemente sparito. Sulla maggior parte dei sistemi, questo non viene registrato da nessuna parte.


Grazie. Per 3 giorni, devo usare 3... cosa devo usare per gli ultimi 30minuti?
Sumit Gupta

Linux chiede sempre conferma prima di eliminare qualsiasi file / cartella?
Sumit Gupta,

16
"Praticamente impossibile" Questo è solo sbagliato pianura e per questo ho dovuto downvote questo. I tempi di eliminazione sono memorizzati in alcuni filesystem, un esempio di tale fs è il ext3filesystem. ext3grep potrebbe essere d'aiuto durante la caccia. Ho ottenuto superuser.com/a/433785/132604 che ha alcune informazioni e collegamenti ad utilità che potrebbero essere utilizzate per trovare ( eventualmente anche recuperare ) file cancellati e informazioni su di essi. Quando si elimina un file, nella maggior parte dei filesystem, non viene effettivamente rimosso ma contrassegnato come spazio che potrebbe essere sovrascritto nella richiesta.
GoFundMonica - codidact.org

Potresti essere in grado di ripristinare i file da un backup e confrontare un elenco di tali file con quelli sul filesystem. Ciò produrrebbe un elenco di file mancanti e appena creati. La risposta di Grawity mostra già che puoi filtrare in tempo, quindi puoi limitarlo solo ai file eliminati.
Hennes,

11

Probabilmente dovresti installare Inotify Tools . quindi è possibile utilizzare il inotifywaitcomando per ascoltare gli eventi che si verificano per la directory specificata.

In particolare se si desidera cercare file e cartelle eliminati, utilizzare questo

inotifywait -m -r -e delete dir_name

e registra questo output in alcuni file.

spero che questo risolva il tuo problema


1
Sembra il miglior approccio per questo. C'è promettente cli-app / demone chiamato iwatch che potresti voler includere nella tua risposta. +1 per l'utilizzo degli strumenti giusti per risolvere il problema.
GoFundMonica - codidact.org

ravi, @SampoSarrala - è applicabile se voglio guardare i file nel /root, tenendo conto del montaggio / smontaggio delle unità? Immagino, in quel caso, l'unica cosa praticabile per mantenere un registro delle cancellazioni sarebbe un modulo del kernel che si aggancerebbe unlink(vedi stackoverflow.com/questions/8588386/… ); man inotifywaitafferma inoltre : "--recursive: Avviso: ... questa opzione mentre si guarda ... un grande albero, potrebbe richiedere del tempo. Inoltre, ..., verrà raggiunta la quantità massima di inotify watch per utente. il valore predefinito massimo è 8192; "
sdaau,

@sdaau dmesg [| tail]dovrebbe mostrarti [recenti] montaggi / smontaggi, se è quello che stai chiedendo.
SeldomNeedy,

Mi chiedo se c'è anche un modo per scoprire quale processo ha eliminato il file (diciamo cron job) dove applicabile. Fai in modo che un caso di file scompaia misteriosamente ...
Nagev,

0

Linux in genere non richiede conferma prima di rimuovere i file, supponendo che si stia utilizzando rmdalla riga di comando.

Per trovare i file modificati negli ultimi 30 minuti, utilizzare touch --date="HH:MM" /tmp/referenceper creare un file chiamato riferimento con un timestamp di 30 minuti fa (dove HH: MM corrisponde a 30 minuti fa). Quindi utilizzare find /home/sam/officedocuments -newer /tmp/referenceper trovare i file più recenti del riferimento.

Se hai eliminato i file utilizzando uno strumento GUI, potrebbero essere ancora in una sorta di "cestino". Dipende da cosa stai usando per un ambiente desktop. Se hai utilizzato rmdalla riga di comando, prova una delle utility menzionate in questa risposta . (Hat hat to @Sampo per quel link.)


Basta non dire "andato per sempre" ... vedere i commenti su un'altra risposta. Ora mi sento così: xkcd.com/386 :)
GoFundMonica - codidact.org
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.