Comment trouver quels fichiers et dossiers ont été supprimés récemment sous Linux?

23

J'ai un dossier particulier ( /home/sam/officedocuments) qui contient des centaines de dossiers et de fichiers. Je pense que j'ai supprimé certains fichiers et dossiers par erreur, mais je ne suis pas sûr.

Comment trouver quels fichiers / dossiers étaient:

  • supprimé récemment sous Linux?
  • changé récemment sous Linux?

Je veux juste savoir quels fichiers et dossiers ont été supprimés. La récupération de ces fichiers et dossiers supprimés n'est pas importante pour moi.

OS: CentOS

Sumit Gupta
la source
1
Vous devez nous dire quel système de fichiers vous utilisez. Par exemple avec ext2, ext3 et ext4 Vous pourriez probablement utiliser l' ext3greputilitaire pour trouver des informations sur les fichiers supprimés. Avec certains scripts, il devrait être possible de créer une application simple qui répertorie les fichiers supprimés en fonction d'un répertoire spécifique. Ces utilitaires ont cependant besoin d'un accès brut au disque et en tant que tels sont extrêmement dangereux s'ils ne sont pas utilisés correctement ( les opérations en lecture seule non bloquantes doivent être complètement sûres si vous vous souvenez que l'écriture sur le disque en même temps pourrait entraîner le retour de données cassées / incorrectes par l'opération en cours ).
GoFundMonica - codidact.org

Réponses:

3

… Changé récemment sous Linux?

Utilisez findpour rechercher par heure de modification. Par exemple, pour rechercher des fichiers touchés au cours des 3 derniers jours:

find /home/sam/officedocuments -mtime -3

Pour "plus de 3 jours", utilisez +3.

… Supprimé récemment sous Linux?

Presque impossible. Lorsqu'un fichier est supprimé, il disparaît tout simplement. Sur la plupart des systèmes, cela n'est enregistré nulle part.

grawity
la source
Merci. Pendant 3 jours, je dois utiliser 3... ce que je dois utiliser pendant les dernières 30minutes?
Sumit Gupta du
Est-ce que Linux demande toujours une confirmation avant de supprimer un fichier / dossier?
Sumit Gupta
16
"Presque impossible" C'est tout simplement faux et à cause de cela, je dois voter contre. Les temps de suppression sont stockés dans certains systèmes de fichiers, un exemple de tels fs est le ext3système de fichiers. ext3grep pourrait aider lors de la chasse. J'ai obtenu superuser.com/a/433785/132604 qui contient des informations et des liens vers des utilitaires qui pourraient être utilisés pour trouver ( éventuellement récupérer également ) des fichiers supprimés et des informations à leur sujet. Lorsque vous supprimez un fichier, dans la plupart des systèmes de fichiers, il n'est pas réellement supprimé mais marqué comme espace pouvant être écrasé à la demande.
GoFundMonica - codidact.org
Vous pourrez peut-être restaurer des fichiers à partir d'une sauvegarde et comparer une liste de ces fichiers avec ceux du système de fichiers. Cela produirait une liste de fichiers manquants et nouvellement créés. La réponse de Grawity montre déjà que vous pouvez filtrer à temps, vous pouvez donc limiter cela aux seuls fichiers supprimés.
Hennes
11

Vous devriez probablement installer les outils Inotify . vous pouvez alors utiliser la inotifywaitcommande pour écouter les événements qui se produisent pour le répertoire spécifié.

Plus précisément, si vous souhaitez surveiller les fichiers et dossiers supprimés, utilisez ce

inotifywait -m -r -e delete dir_name

et enregistrez cette sortie dans un fichier.

J'espère que ceci résoudra votre problème

ravi
la source
1
Cela semble être la meilleure approche pour cela. Il y a une application / démon prometteuse nommée iwatch que vous voudrez peut-être inclure dans votre réponse. +1 pour avoir utilisé les bons outils pour résoudre le problème.
GoFundMonica - codidact.org
ravi, @SampoSarrala - est-ce applicable si je veux regarder des fichiers à la /racine, en tenant compte du montage / démontage des lecteurs? Je suppose que, dans ce cas, la seule chose viable pour conserver un journal de suppression serait un module de noyau auquel se connecter unlink(voir stackoverflow.com/questions/8588386/… ); man inotifywaitindique également : "--recursive: Attention: ... cette option en regardant ... un grand arbre, cela peut prendre un certain temps. De plus, ..., le nombre maximum de montres inotify par utilisateur sera atteint. le maximum par défaut est 8192; "
sdaau
@sdaau dmesg [| tail]devrait vous montrer les montages / démontages [récents], si c'est ce que vous demandez.
SeldomNeedy
Je me demande s'il existe également un moyen de savoir quel processus a supprimé le fichier (par exemple, un travail cron), le cas échéant. Avoir une affaire de fichiers disparaissant mystérieusement ...
Nagev
0

Linux ne demande généralement pas de confirmation avant de supprimer des fichiers, en supposant que vous utilisez rmdepuis la ligne de commande.

Pour rechercher des fichiers modifiés au cours des 30 dernières minutes, utilisez touch --date="HH:MM" /tmp/referencepour créer un fichier appelé référence avec un horodatage d'il y a 30 minutes (où HH: MM correspond à il y a 30 minutes). Utilisez ensuite find /home/sam/officedocuments -newer /tmp/referencepour rechercher des fichiers plus récents que la référence.

Si vous avez supprimé des fichiers à l'aide d'un outil graphique, ils peuvent toujours se trouver dans une sorte de «poubelle». Cela dépend de ce que vous utilisez pour un environnement de bureau. Si vous l'avez utilisé à rmpartir de la ligne de commande, essayez l'un des utilitaires mentionnés dans cette réponse . (Pointe du chapeau à @Sampo pour ce lien.)

bstpierre
la source
Ne dites pas "disparu pour toujours" ... voir les commentaires sur une autre réponse. Maintenant, je me sens comme ceci: xkcd.com/386 :)
GoFundMonica - codidact.org