Linux restaura el archivo por error con el comando lsof.

  

Hay muchos usos del comando lsof en el sistema Linux. La recuperación de archivos borrados accidentalmente es uno de los usos, especialmente la recuperación de los archivos de registro. La siguiente serie lo presentará a todos. Linux usa el comando lsof para recuperar archivos perdidos.

Requisitos previos: Después de la eliminación del archivo, el proceso sigue siendo accesible con, por lo tanto, más adecuado para el tipo de archivo de registro para la recuperación.

Cuando una computadora con Linux está comprometida, es común que los archivos de registro se eliminen para enmascarar el rastro del atacante. Los errores administrativos también pueden causar la eliminación accidental de archivos importantes, como la eliminación accidental del registro de transacciones activas de la base de datos al limpiar registros antiguos. A veces estos archivos pueden ser recuperados por lsof.

Cuando un proceso abre un archivo, siempre que el proceso lo mantenga abierto, incluso si se elimina, aún existe en el disco. Esto significa que el proceso no sabe que el archivo se ha eliminado, aún puede leer y escribir en el descriptor de archivo provisto cuando se abre el archivo. Excepto por este proceso, este archivo es invisible porque su nodo de índice de directorio correspondiente ha sido eliminado.

En el directorio /proc, contiene varios archivos que reflejan el kernel y el árbol de procesos. El directorio /proc monta un área que está asignada en la memoria, por lo que estos archivos y directorios no existen en el disco, por lo que cuando leemos y escribimos en estos archivos, en realidad se obtienen de la memoria. Información relacionada. La mayor parte de la información relacionada con lsof se almacena en un directorio que lleva el nombre del PID del proceso, es decir, /proc /1234 contiene información sobre el proceso con el PID 1234. Hay varios archivos en cada directorio de procesos que permiten que la aplicación simplemente entienda el espacio de memoria del proceso, la lista de descriptores de archivos, los enlaces simbólicos a los archivos en el disco y otra información del sistema. El programa lsof utiliza esta información y otra información sobre el estado interno del núcleo para producir su salida. Así que lsof puede mostrar información como el descriptor de archivo del proceso y el nombre de archivo asociado. Es decir, podemos encontrar información sobre el archivo accediendo al descriptor de archivos del proceso. Cuando un archivo en el sistema se borra accidentalmente, siempre que haya procesos en el sistema que acceden al archivo, podemos restaurar el contenido del archivo desde el directorio /proc a través de lsof.

Si el archivo /var /log /messages se elimina debido a una operación incorrecta, entonces el método para restaurar el archivo /var /log /messages es el siguiente: Primero use lsof para ver si hay un proceso abierto actualmente /El archivo var /logmessages es el siguiente:

# lsof | Grep /var /log /messages

COMMAND PID USER FD TIPO DISPOSITIVO TAMAÑO /OFF NOMBRE DE NODO

syslogd 14572 root 1w REG 253,0 5584 1737237 /var /log /messages

#rm – f /var /log /messages

# lsof | Grep /var /log /messages

COMMAND PID USER FD TIPO DISPOSITIVO TAMAÑO /OFF NOMBRE DE NODO

syslogd 14572 root 1w REG 253,0 5584 1737237 /var /log /messages (eliminado) < Br>

De la información anterior, puede ver que el descriptor de archivo del archivo abierto PID 14572 (syslogd) es 1. También puede ver que /var /log /messages ha sido marcado para su eliminación. Entonces podemos ver la información correspondiente en /proc /14572 /fd /1 (cada archivo con nombre digital debajo de fd indica el descriptor de archivo correspondiente al proceso), de la siguiente manera:

# tail -n 10 /proc /14572 /fd /1

Feb 4 20:02:25 host191 kernel: klogd 1.4.1, fuente de registro = /proc /kmsg iniciado.

Feb 4 20:02: 45 host191 root: aaa

4 de febrero 20:05:07 host191 dhclient: DHCPREQUEST en eth0 a 192.168.0.254 puerto 67

4 de febrero 20:05:07 host191 dhclient: DHCPACK desde 192.168. 0.254

4 de febrero 20:05:07 host191 dhclient: vinculado a 192.168.0.191 - renovación en 718 segundos.

4 de febrero 20:15:50 host191 syslogd 1.4.1: reinicio.

4 de febrero 20:15:50 host191 kernel: klogd 1.4.1, fuente de registro = /proc /kmsg iniciado.

4 de febrero 20:17:05 host191 dhclient: DHCPREQUEST en eth0 para 192.168.0.254 puerto 67

4 de febrero 20:17:05 host191 dhclient: DHCPACK from 192.168.0.254

4 de febrero 20:17:05 host191 dhclient: enlazado a 192.168.0.19 1: renovación en 804 segundos. # Cat /proc /14572 /fd /1》 /var /log /messages
Anterior123Página siguiente Total 3 páginas

Copyright © Conocimiento de Windows All Rights Reserved