Ver enormes archivos de registro para solucionar problemas es una tarea de rutina mundana para administradores de sistemas y programadores.
En este artículo, repasemos cómo ver y manipular de manera efectiva archivos de registro enormes usando 10 ejemplos asombrosos.
Ejemplo 1:Muestra líneas específicas (basadas en el número de línea) de un archivo usando el comando sed
Ver solo las líneas específicas mencionadas por números de línea.
Syntax: $ sed -n -e Xp -e Yp FILENAME
- sed :comando sed, que imprimirá todas las líneas por defecto.
- -n :suprime la salida.
- -e CMD :Comando a ejecutar
- Xp:imprime el número de línea X
- Yp:Imprimir el número de línea Y
- FILENAME :nombre del archivo a procesar.
El ejemplo mencionado a continuación imprimirá las líneas 120, 145, 1050 del syslog.
$ sed -n -e 120p -e 145p -e 1050p /var/log/syslog
En el siguiente ejemplo, puede ver el contenido de var/log/cron desde el número de línea 101 hasta el 110.
- M:número de la línea de inicio
- N:número de línea final
Syntax: sed -n M,Np FILENAME $ sed -n 101,110p /var/log/cron
Ejemplo 2:Muestra las primeras N líneas de un archivo usando el comando head
Este ejemplo muestra solo las primeras 15 líneas del archivo /var/log/maillog. Cambie 15 a 10 para mostrar las primeras 10 líneas de un archivo de registro.
Syntax: head -n N FILENAME $ head -n 15 /var/log/maillog
Ejemplo 3:ignorar las últimas N líneas de un archivo usando el comando head
Este ejemplo muestra cómo ignorar las últimas N líneas y mostrar solo las líneas restantes desde la parte superior del archivo.
El siguiente ejemplo mostrará todas las líneas de /var/log/secure excepto las últimas 250 líneas.
Syntax: head -n -N FILENAME $ head -n -250 /var/log/secure
Ejemplo 4:Muestra las últimas N líneas del archivo usando el comando tail
Este ejemplo muestra solo las últimas 50 líneas del archivo /var/log/messages. Cambie 50 a 100 para mostrar las últimas 100 líneas del archivo de registro.
Syntax: tail -n N FILENAME $ tail -n 50 /var/log/messages
Ejemplo 5:ignorar las primeras N-1 líneas del archivo usando el comando tail
Este ejemplo muestra cómo ignorar las primeras líneas N-1 y mostrar solo las líneas restantes.
El siguiente ejemplo ignora las primeras cuatro líneas de /etc/xinetd.conf, que contiene solo los comentarios.
Syntax: tail -n +N FILENAME $ tail -n +5 /etc/xinetd.conf defaults { instances = 60 log_type = SYSLOG authpriv log_on_success = HOST PID log_on_failure = HOST cps = 25 30 } includedir /etc/xinetd.d
Ejemplo 6:ver el archivo de registro en crecimiento en tiempo real usando el comando tail
Este es probablemente uno de los comandos más utilizados por los administradores de sistemas. Para ver un archivo de registro en crecimiento y ver solo los contenidos más nuevos, use tail -f como se muestra a continuación.
El siguiente ejemplo muestra el contenido del comando /var/log/syslog en tiempo real.
Syntax: tail -f FILENAME $ tail -f /var/log/syslog
Ejemplo 7:Muestra líneas específicas (basadas en el número de línea) de un archivo usando el comando de cabeza y cola
El siguiente ejemplo mostrará los números de línea 101 – 110 del archivo /var/log/anaconda.log
- M:número de la línea de inicio
- N:número de línea final
Syntax: cat file | tail -n +N | head -n (M-N+1) $ cat /var/log/anaconda.log | tail -n +101 | head -n 10
- cat :imprime todo el archivo en la salida estándar.
- tail -n +101:ignora las líneas hasta el número de línea dado y luego comienza a imprimir líneas después del número dado.
- head -n 10 :imprime las primeras 10 líneas, es decir 101 a 110 e ignora las líneas restantes.
Ejemplo 8:muestra líneas que coinciden con un patrón y pocas líneas que siguen a la coincidencia.
El siguiente ejemplo muestra la línea que coincide con "Inicializar CPU" de /var/log/dmesg y 5 líneas inmediatamente después de esta coincidencia.
# grep "Initializing CPU#1" /var/log/dmesg Initializing CPU#1 [Note: The above shows only the line matching the pattern] # grep -A 5 "Initializing CPU#1" dmesg Initializing CPU#1 Calibrating delay using timer specific routine.. 3989.96 BogoMIPS (lpj=1994982) CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000 CPU: After vendor identify, caps: bfebfbff 20100000 00000000 00000000 monitor/mwait feature present. CPU: L1 I cache: 32K, L1 D cache: 32K [Note: The above shows the line and 5 lines after the pattern matching]
Consulte nuestro artículo anterior ¡Consiga un control sobre el Grep! – 15 ejemplos prácticos de comandos Grep que explican cómo usar el comando grep.
Como se explicó en nuestro artículo anterior sobre el comando grep, las siguientes operaciones son posibles.
- Ver líneas específicas identificadas por patrones, que es la funcionalidad predeterminada de grep.
- Ver solo los caracteres coincidentes.
- Ver N líneas después del partido con la opción -A.
- Ver N líneas antes del partido con la opción -B.
- Ver N líneas alrededor del partido con la opción -C.
Ejemplo 9:Mostrar bytes específicos de un archivo.
El siguiente ejemplo explica cómo mostrar los primeros 40 o los últimos 30 bytes de un archivo.
Muestra los primeros 40 bytes de syslog.
$ head -c40 /var/log/syslog
Muestra los últimos 30 bytes de syslog.
$ tail -c30 /var/log/syslog
Ejemplo 10:Ver archivos de registro comprimidos
Después de un tiempo específico, todos los archivos de registro del sistema se rotan y comprimen. Puede descomprimirlo sobre la marcha y canalizar la salida a otro comando de Unix para ver el archivo como se explica a continuación.
Consulte nuestro artículo anterior El poder de los comandos Z:ejemplos de Zcat, Zless, Zgrep y Zdiff
- Muestra las primeras N líneas de un archivo comprimido.
$ zcat file.gz | head -250
- Muestra las últimas N líneas de un archivo comprimido.
$ zcat file.gz | tail -250
- Ignorar las últimas N líneas de un archivo comprimido.
$ zcat file.gz | head -n -250
- Ignorar las primeras N líneas de un archivo comprimido.
$ zcat file.gz | tail -n +250
- Ver las líneas que coinciden con el patrón
$ zcat file.gz | grep -A2 'error'
- Ver un rango particular de líneas identificadas por número de línea.
$ zcat file.gz | sed -n -e 45p -e 52p
Si necesita regresar, marque esta página en del.icio.us como referencia práctica.