¿Cómo encontrar qué archivos y carpetas se eliminaron recientemente en Linux?


23

Tengo una carpeta en particular ( /home/sam/officedocuments) que tiene cientos de carpetas y archivos. Creo que eliminé algunos archivos y carpetas por error, pero no estoy seguro.

Cómo encontrar qué archivos / carpetas eran:

  • eliminado recientemente en Linux?
  • cambiado recientemente en Linux?

Solo quiero saber qué archivos y carpetas se eliminaron. Recuperar esos archivos y carpetas eliminados no es importante para mí.

OS: CentOS


1
Debe decirnos qué sistema de archivos está utilizando. Por ejemplo, con ext2, ext3 y ext4 Probablemente podría usar la ext3greputilidad para encontrar información sobre archivos eliminados. Con algunas secuencias de comandos, debería ser posible reunir una aplicación simple que enumere los archivos eliminados en función de un directorio específico. Sin embargo, estas utilidades necesitan acceso sin procesar al disco y, como tales, son extremadamente peligrosas si no se usan correctamente ( las operaciones de solo lectura sin bloqueo deben ser completamente seguras si recuerda que escribir en el disco al mismo tiempo podría causar que la operación actual devuelva datos rotos / incorrectos ).
GoFundMonica - codidact.org

Respuestas:


3

... cambiado recientemente en Linux?

Use findpara buscar por hora de modificación. Por ejemplo, para buscar archivos tocados en los últimos 3 días:

find /home/sam/officedocuments -mtime -3

Para "mayores de 3 días", use +3.

... eliminado recientemente en Linux?

Bastante imposible. Cuando se elimina un archivo, simplemente desaparece. En la mayoría de los sistemas, esto no se registra en ninguna parte.


Gracias. Durante 3 días, necesito usar 3... ¿qué necesito usar para los últimos 30minutos?
Sumit Gupta

¿Linux siempre pide confirmación antes de eliminar cualquier archivo / carpeta?
Sumit Gupta

16
"Bastante imposible" Esto es simplemente incorrecto y debido a esto tengo que desestimar esto. Los tiempos de eliminación se almacenan en algunos sistemas de archivos, ejemplo de tal fs es el ext3sistema de archivos. ext3grep podría ayudar al cazar. Tengo superuser.com/a/433785/132604 que tiene cierta información y enlaces a los servicios públicos que se podrían utilizar para encontrar ( posiblemente recuperar demasiado ) eliminado los archivos y la información sobre ellos. Cuando elimina un archivo, en la mayoría de los sistemas de archivos, en realidad no se elimina sino que se marca como espacio que podría sobrescribirse en demanda.
GoFundMonica - codidact.org

Es posible que pueda restaurar archivos de una copia de seguridad y comparar una lista de esos archivos con los del sistema de archivos. Eso produciría una lista de archivos faltantes y recién creados. La respuesta de Grawity ya muestra que puede filtrar a tiempo, por lo tanto, puede limitar eso solo a los archivos eliminados.
Hennes

11

Probablemente deberías instalar Inotify Tools . entonces puede usar el inotifywaitcomando para escuchar eventos que suceden para el directorio especificado.

Específicamente, si desea ver archivos y carpetas eliminados, use esto

inotifywait -m -r -e delete dir_name

y registrar esta salida en algún archivo.

Espero que esto resuelva tu problema


1
Suena como el mejor enfoque para esto. Hay un prometedor cli-app / daemon llamado iwatch que quizás quieras incluir en tu respuesta. +1 por usar las herramientas adecuadas para resolver el problema.
GoFundMonica - codidact.org

ravi, @SampoSarrala: ¿es esto aplicable si quiero ver archivos en la /raíz, teniendo en cuenta las unidades de montaje / desmontaje? Supongo que, en ese caso, lo único viable para mantener un registro de eliminación sería un módulo del núcleo que se conectaría unlink(ver stackoverflow.com/questions/8588386/… ); también man inotifywaitdice: "--recursivo: Advertencia: ... esta opción mientras mira ... un árbol grande, puede llevar bastante tiempo. Además, ..., se alcanzará la cantidad máxima de relojes inotify por usuario. el máximo predeterminado es 8192; "
sdaau

@sdaau dmesg [| tail]debería mostrarle montajes / desmontajes [recientes], si eso es lo que está preguntando.
SeldomNeedy

Me pregunto si también hay una manera de averiguar qué proceso eliminó el archivo (por ejemplo, un trabajo cron) cuando corresponda. Tener un caso de archivos misteriosamente desapareciendo ...
Nagev

0

Linux generalmente no solicita confirmación antes de eliminar archivos, suponiendo que lo esté utilizando rmdesde la línea de comandos.

Para buscar archivos modificados en los últimos 30 minutos, use touch --date="HH:MM" /tmp/referencepara crear un archivo llamado referencia con una marca de tiempo de hace 30 minutos (donde HH: MM corresponde a hace 30 minutos). Luego, use find /home/sam/officedocuments -newer /tmp/referencepara buscar archivos más nuevos que la referencia.

Si eliminó archivos usando una herramienta GUI, aún pueden estar en algún tipo de "bote de basura". Depende de lo que esté utilizando para un entorno de escritorio. Si usó rmdesde la línea de comandos, pruebe una de las utilidades mencionadas en esta respuesta . (Un consejo para @Sampo para ese enlace).


Simplemente no diga "ido para siempre" ... vea los comentarios sobre otra respuesta. Ahora me siento así: xkcd.com/386 :)
GoFundMonica - codidact.org
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.