Sistema de archivos de Linux y análisis de registros (inodo, solución de problemas de agotamiento del nodo de inodo, copia de seguridad y recuperación de archivos, administración de archivos de registro)

1. Descripción general de inodo y bloque

1. Archivos y sectores

  • Los archivos se almacenan en el disco duro. La unidad de almacenamiento más pequeña del disco duro se llama "sector" y cada sector almacena 512 bytes.

2. Bloque

  • Generalmente, ocho sectores consecutivos forman un "bloque" Un bloque tiene un tamaño de 4K y es la unidad más pequeña de acceso a archivos.
  • Cuando el sistema operativo lee el disco duro, lee varios sectores a la vez, es decir, lee bloque por bloque.

3. Archivo de datos

  • Los datos del archivo incluyen datos y metadatos reales (similares a los atributos del archivo).
  • Los datos del archivo se almacenan en "bloques", y el área que almacena la metainformación del archivo (como el creador del archivo, la fecha de creación, el tamaño del archivo, los permisos del archivo, etc.) se llama inodo.

Dos, inodo (nodo índice)

  • Un archivo debe ocupar un inodo y al menos un bloque.
  • El inodo no contiene el nombre del archivo. El nombre del archivo se almacena en el directorio. Todo en un sistema Linux es un archivo, por lo que un directorio también es una especie de archivo.
  • Cada inodo tiene un número y el sistema operativo usa el número de inodo para identificar diferentes archivos. El nombre del archivo no se usa internamente en el sistema Linux, pero el número de inodo se usa para identificar el archivo. Para el sistema, el nombre del archivo es solo otro nombre para la fácil identificación del número de inodo.El nombre del archivo y el número de inodo tienen una correspondencia uno a uno, y cada número de inodo corresponde a un nombre de archivo.

1. El contenido del inodo

■ Inode contiene la metainformación del archivo.

  • El número de bytes del archivo.
  • ID de usuario del propietario del archivo
  • ID de grupo del archivo
  • Permisos de lectura, escritura y ejecución de archivos
  • Marca de tiempo del archivo
  • ...

■ Utilice el comando stat para ver la información de inodo de un archivo.

- 示例:stat aa.txt

Inserte la descripción de la imagen aquí
■ Tres atributos de tiempo principales de los archivos del sistema Linux

  • ctime (hora de cambio) # La última vez que se cambió el archivo o directorio (atributo)
  • atime (tiempo de acceso) #La última vez que se accedió al archivo o directorio
  • mtime (tiempo de modificación) # El momento en que se modificó por última vez el archivo o directorio (contenido)
    Inserte la descripción de la imagen aquí

■ La estructura del archivo de catálogo

  • El directorio también es una especie de archivo
  • La estructura del archivo de catálogo

■ Cada inodo tiene un número y el sistema operativo usa el número de inodo para identificar diferentes archivos.

■ El nombre del archivo no se usa dentro del sistema Linux, pero el número de inodo se usa para identificar el archivo.

■ Para los usuarios, el nombre del archivo es solo otro nombre para una fácil identificación del número de inodo.

2.número de nodo

■ El proceso interno del sistema cuando el usuario abre el archivo por el nombre de archivo
Inserte la descripción de la imagen aquí

  • El sistema encuentra el número de inodo correspondiente a este nombre de archivo
  • Obtener información de inodo por número de inodo
  • De acuerdo con la información del inodo, busque el bloque donde se encuentran los datos del archivo y lea los datos

■ Cómo verificar el número de inodo

  • Comando ls -i: Ver el número de inodo correspondiente al nombre del archivo
ls -i aa.txt

Inserte la descripción de la imagen aquí

  • comando stat: Ver el número de inodo en la información del inodo del archivo
stat aa.txt

3. El tamaño del inodo

■ Inode también consume espacio en el disco duro

  • El tamaño de cada inodo es generalmente de 128 bytes o 256 bytes.

■ Formatee el sistema de archivos para determinar el número total de inodos

■ Utilice el comando df -i para ver el número total de inodos de cada partición del disco duro y el número que se ha utilizado
Inserte la descripción de la imagen aquí

3. El papel especial del inodo

Debido a la separación del número de inodo y el nombre del archivo, el sistema Linux tiene los siguientes fenómenos únicos:

  • El nombre del archivo contiene caracteres especiales y es posible que no se elimine normalmente. En este momento, elimine el inodo directamente, que puede desempeñar el papel de eliminar el archivo;
  • Mueva archivos o cambie el nombre de los archivos, simplemente cambie el nombre del archivo sin afectar el número de inodo;
  • Después de abrir un archivo, el sistema utilizará el número de inodo para identificar el archivo, independientemente del nombre del archivo.
  • Después de que se modifiquen y guarden los datos del archivo, se generará un nuevo número de inodo.

4. Elimina el archivo eliminando el número de inodo.

find ./ -inum 52305140 -exec rm -i {
    
    } \;
find ./ -inum 50464299 -delete

Demostración:
Inserte la descripción de la imagen aquí
Command 2 no se demostrará por la misma razón

Tres, procesamiento de fallas de agotamiento del nodo de inodo de simulación

Resumen de pasos

1、使用fdisk创建分区/dev/sdb1,分区大小30M即可
fdisk /dev/sdb  
mkfs.ext4 /dev/sdb1   #这边我们用ext4类型的文件系统进行模拟
mkdir /test
mount /dev/sdb1 /mnt
df -i

2、模拟inode节点耗尽故障
for ((i=1; i<=7680; i++));do touch /test/file$i;done  
或者   touch {
    
    1..7680}.txt
df -i
df -hT
3、删除文件恢复
rm -rf /test/*
df -i
df -hT

Manifestación

1. Use fdisk para crear la partición / dev / sdb1, formatee y móntelo
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
2. Simule la falla de agotamiento del nodo de inodo
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3. Elimina los archivos recuperados
Inserte la descripción de la imagen aquí

Cuatro, recuperación de archivos de tipo EXT

extundelete 是一个开源的 Linux 数据恢复工具,支持 ext3、ext4文件系统。(ext4只能在centos6版本恢复)


1、使用fdisk创建分区/dev/sdb1,格式化ext3文件系统
fdisk /dev/sdb  
mkfs.ext3 /dev/sdb1
mkdir /test
mount /dev/sdb1 /test
df -hT

2、安装依赖包
yum -y install e2fsprogs-devel e2fsprogs-libs

3、编译安装 extundelete
cd /test  切换到test目录中
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2   #官网下载源
tar jxvf extundelete-0.2.4.tar.bz2               #解压tar包
cd extundelete-0.2.4/                            #切换到解压出来的目录中
./configure --prefix=/usr/local/extundelete && make && make install  #指定安装目录,开始安装   
ln -s /usr/local/extundelete/bin/* /usr/bin/          #创建软连接,让系统识别命令

4、模拟删除并执行恢复操作
cd /test
echo a>a
echo a>b
echo a>c
echo a>d
ls
extundelete /dev/sdb1 --inode 2			#查看文件系统/dev/sdb1下存在哪些文件,i 节点是从 2 开始的,2 代表该文件系统最开始的目录。

rm -rf a b
extundelete /dev/sdb1 --inode 2	
cd ~
umount /test
extundelete /dev/sdb1 --restore-all		#恢复/dev/sdb1 文件系统下的所有内容
#在当前目录下会出现一个RECOVERED_FILES/目录,里面保存了已经恢复的文件
ls RECOVERED_FILES/

Demostración:
1. Cree la partición / dev / sdb1 con fdisk, formatee y monte el tipo de archivo ext3
Inserte la descripción de la imagen aquí
2. Instale el paquete de dependencia
Inserte la descripción de la imagen aquí

3. Compile e instale extundelete
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
4. Simular la eliminación y recuperación de archivos.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Cinco, copia de seguridad y recuperación de archivos de tipo xfs

  • El sistema CentOS 7 usa archivos de tipo xfs de forma predeterminada, y los archivos de tipo xfs se pueden respaldar y restaurar utilizando las herramientas xfsdump y xfsrestore.
  • Hay dos niveles de respaldo para xfsdump: 0 significa respaldo completo; 1-9 significa respaldo incremental. El nivel de copia de seguridad predeterminado de xfsdump es 0.
xfsdump 的命令格式为:
xfsdump -f 备份存放位置 要备份的路径或设备文件
xfsdump使用限制:
1.只能备份已挂载的文件系统
2.必须使用root的权限才能操作
3.只能备份XFS文件系统
4.备份后的数据只能让xfsrestore解析
5.不能备份两个具有相同UUID的文件系统(可用 blkid命令查看)
xfsdump命令常用的选项:
-f	    指定备份文件目录
-L	    指定标签 session label
-M	    指定设备标签 media label
-s	    备份单个文件,-s 后面不能直接跟路径

Proceder de la siguiente:

1、使用fdisk创建分区/dev/sdb1,格式化xfs文件系统
fdisk /dev/sdb
partprobe /dev/sdb   
mkfs.xfs [-f] /dev/sdb1
mkdir /data
mount /dev/sdb1 /data/
cd /data
cp /etc/passwd ./
mkdir test
touch test/a

2、使用 xfsdump 命令备份整个分区
rpm -qa | grep xfsdump
yum install -y xfsdump
xfsdump -f /opt/dump_sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1]

3、模拟数据丢失并使用 xfsrestore 命令恢复文件
cd /data/
rm -rf ./*
ls

xfsrestore -f /opt/dump_sdb1 /data/

Demostración:
1. Use fdisk para crear la partición / dev / sdb1, formatee el sistema de archivos xfs y
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
móntelo 2. Use el comando xfsdump para hacer una copia de seguridad de toda la partición
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Seis, registro del sistema

1. Archivos de registro

1.1 Función de registro

  • Se utiliza para registrar varios eventos que ocurren durante el funcionamiento del sistema y los programas.
  • Al leer el registro, es útil diagnosticar y resolver fallas del sistema.

1.2 Clasificación de registros

■ Registro del sistema y del kernel

  • Gestión unificada por el servicio del sistema rsyslog, el formato de registro es básicamente similar
  • Archivo de configuración principal /etc/rsyslog.conf

■ Registro de usuario

  • Registre la información relacionada con el inicio y cierre de sesión del usuario del sistema
  • Archivo de configuración principal / var / log / secure

■ Registro del programa
Los archivos de registro administrados de forma independiente por varias aplicaciones, el formato de registro no es uniforme

1.3 Ubicación predeterminada para guardar los registros del sistema

Los archivos de registro del sistema se colocan en el directorio / var / log / de forma predeterminada
Inserte la descripción de la imagen aquí

1.4 Algunos archivos de registro comunes

内核及公共消息日志:
/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、To错误、网络错误、程序故障等。
对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。

#计划任务日志:
/ var/ log / cron:记录crond计划任务产生的事件信息。

#系统引导日志:
/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。

#邮件系统日志:
/var/ log/maillog:记录进入或发出系统的电子邮件活动。

#用户登录日志:
/var/log/security:记录用户认证相关的安全事件信息。
/var/log/lastlog:记录每个用户最近的登录事件。二进制格式
/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。二进制格式
/var/run/btmp:记录失败的、错误的登录尝试及验证事件。二进制格式

2. Registros del kernel y del sistema

■ Gestión unificada por el servicio del sistema rsyslog

  • Paquete de software: rsyslog-7.4.7-16.el7.x86_64,
  • Programa principal: / sbin / rsyslogd
  • Archivo de configuración: /etc/rsyslog.cont

2.1 Ver el archivo de configuración rsyslog.conf

vim /etc/rsyslog.conf		#查看rsyslog.conf配置文件
*.info;mail.none;authpriv.none;cron.none         /var/log/messages

*.info		#表示info等级及以上的所有等级的信息都写到对应的日志文件里
mail.none	#表示某事件的信息不写到日志文件里(这里比如是邮件)

2.2 El nivel de los mensajes de registro

Número de grado Nivel de prioridad Descripción
0 EMERG (emergencia) Hará que el sistema host no esté disponible.
1 ALERTA (alerta) Problemas que deben resolverse de inmediato.
2 CRIT (grave) Situación más grave.
3 ERR (error) Ocurrió un error durante la operación.
4 ADVERTENCIA Eventos importantes que pueden afectar las funciones del sistema y deben recordárselo a los usuarios.
5 DARSE CUENTA No afectará las funciones normales, sino eventos que requieran atención.
6 INFO (información) Información general.
7 DEBUG (depuración) Información de depuración del programa o del sistema, etc.

2.3 Formato general de los registros cronológicos

Inserte la descripción de la imagen aquí

3. Análisis de registros de usuarios

■ Guardar información relevante sobre el inicio y cierre de sesión del usuario

  • / var / log / lastlog: eventos recientes de inicio de sesión de usuario
  • / var / log / wtmp: inicio de sesión de usuario, cierre de sesión y eventos de inicio y apagado del sistema
  • / var / run / utmp: información detallada de cada usuario actualmente conectado
  • / var / log / secure: eventos de seguridad relacionados con la autenticación de usuarios

■ Herramientas de análisis

  • usuarios 、 quién 、 w 、 último 、 últimob
  • El último comando se utiliza para consultar los registros de usuarios que han iniciado sesión con éxito en el sistema.
  • El comando lastb se usa para consultar registros de usuarios que no pudieron iniciar sesión

4. Análisis del registro del programa

■ Gestionado de forma independiente por la aplicación correspondiente

■ Servicio web: Nar / log / httpd /

  • access_log // Registra los eventos de acceso de los clientes
  • error_log // Registra los eventos de error

■ Servicio de proxy: / var / log / squid /

  • access.log 、 cache.log

■ Herramientas de análisis

  • Vista de texto, búsqueda de filtro grep, vista en la suite de administración de Webmin
  • Herramientas de edición, formato y filtrado de texto como awk y sed
  • Webalizer, Awstats y otras herramientas de análisis de registros dedicadas

5. Estrategia de gestión de registros

■ Realice copias de seguridad y archivos a tiempo

■ Extienda el período de retención de registros

■ Controlar los derechos de acceso al registro

  • Los registros pueden contener diversa información confidencial, como cuentas, contraseñas, etc.

■ Gestión centralizada de registros

  • Envíe el archivo de registro del servidor al servidor de archivos de registro unificado
  • Facilitar la recopilación, clasificación y análisis unificados de información de registro
  • Evite la pérdida accidental, la manipulación malintencionada o la eliminación de la información de registro

Supongo que te gusta

Origin blog.csdn.net/IHBOS/article/details/113664807
Recomendado
Clasificación