Cómo usar el comando tail en Linux

Puntos clave
- El comando tail en Linux muestra datos desde el final de un archivo, lo que lo hace útil para monitorear archivos de registro y mostrar adiciones recientes.
- La introducción de systemd en algunas distribuciones de Linux cambió el formato de los archivos de registro del sistema a un formato binario, pero muchos archivos de registro generados por aplicaciones todavía usan el formato de texto sin formato.
- Además de mostrar actualizaciones en tiempo real, tail también se puede usar para mostrar una cantidad específica de líneas, trabajar con múltiples archivos, mostrar líneas desde el principio de un archivo, usar compensaciones de bytes y combinarse con otros comandos a través de tuberías.
linux tail
El comando muestra datos desde el final de un archivo. Incluso puede ver las actualizaciones agregadas a un archivo en tiempo real. Te mostramos cómo usarlo.
¿Systemd ha matado la cola?
EL tail
el comando muestra datos desde el final de un archivo. Por lo general, los datos nuevos se agregan al final de un archivo, de ahí el nombre del archivo. tail
El comando es una forma rápida y sencilla de ver las adiciones más recientes a un archivo. También puede monitorear un archivo y ver cada nueva entrada de texto en ese archivo a medida que ocurre. Esto lo convierte en una gran herramienta para monitorear archivos de registro.
Muchas distribuciones modernas de Linux han adoptado el systemd
Responsable de sistemas y servicios. Este es el primer proceso ejecutado, tiene el ID de proceso 1 y es el padre de todos los demás procesos. Esta función la manejaba el antiguo sistema de inicio.
Junto con este cambio llegó un nuevo formato para los archivos de registro del sistema. Ya no se crea en texto plano, a continuación systemd
se registran en formato binario. Para leer estos archivos de registro, debe utilizar la utilidad journalactl. EL tail
el comando funciona con formatos de texto sin formato. No lee archivos binarios. Entonces esto significa que tail
¿Es el comando una solución que busca un problema? ¿Todavía tiene algo que ofrecer?
Hay más que eso tail
comando en lugar de mostrar actualizaciones en tiempo real. Y de hecho, todavía hay muchos archivos de registro que no son generados por el sistema y aún así se crean como archivos de texto sin formato. Por ejemplo, los archivos de registro generados por aplicaciones no han cambiado de formato.
Usando cola en Linux
Pasar un nombre de archivo a tail
y le mostrará las últimas diez líneas de ese archivo. Los archivos de ejemplo que utilizamos contienen listas de palabras ordenadas. Cada línea está numerada, por lo que debería ser fácil seguir los ejemplos y ver qué efecto tienen las distintas opciones.
tail word-list.txt
Para ver un número diferente de líneas, use el comando -n
Opción (número de líneas):
tail -n 15 word-list.txt
De hecho, puedes prescindir de la "-n" y simplemente utilizar un guión "-" y el número. Asegúrate de que no haya espacios entre ellos. Técnicamente, este es un módulo de comando obsoleto, pero todavía está en la página de manual y aún funciona.
tail -12 word-list.txt
Usando cola con múltiples archivos
tu puedes tener tail
trabajar con varios archivos a la vez. Simplemente pase los nombres de los archivos en la línea de comando:
tail -n 4 list-1.txt list-2.txt list-3.txt
Para cada archivo se muestra un pequeño encabezado para que sepa a qué archivo pertenecen las líneas.
Ver líneas desde el principio de un archivo
EL +
(cuenta desde el principio) el modificador hace tail
muestra líneas desde el principio de un archivo, comenzando en un número de línea específico. Si su archivo es muy largo y elige una línea cerca del comienzo del archivo, recibirá una gran cantidad de resultados enviados a la ventana del terminal. En ese caso, tiene sentido redirigir la salida desde tail
en less
.
tail +440 list-1.txt
Puede navegar por el texto de forma controlada.
Dado que hay 20.445 líneas en este archivo, este comando equivale a utilizar la opción "-6":
tail +20440 list-1.txt
Usando bytes en cola
puedes decirlo tail
usar compensaciones en bytes en lugar de filas usando el comando -c
(bytes) opción. Esto puede resultar útil si tiene un archivo de texto formateado en un tamaño de registro normal. Tenga en cuenta que un carácter de nueva línea cuenta como un byte. Este comando mostrará los últimos 93 bytes del archivo:
tail -c 93 list-2.txt
Puedes combinar el -c
Opción (bytes) con el archivo. +
(cuenta desde el inicio del archivo) modificador y especifique un desplazamiento en bytes contados desde el inicio del archivo:
tail -c +351053 list-e.txt
Tubos en la cola
Anteriormente, enviamos la salida de tail
en less
. También podemos canalizar la salida de otros comandos a tail
.
Para identificar los cinco archivos o carpetas con los tiempos de modificación más antiguos, utilice el -t
(ordenar por hora de modificación) opción con ls
y canalizar la salida hacia tail
.
ls -tl | tail -5
EL head
El comando enumera líneas de texto desde el principio de un archivo. Podemos combinarlo con tail
para extraer una sección del archivo. Aquí estamos usando el head
comando para extraer las primeras 200 líneas de un archivo. esto esta canalizado tail
, que extrae las últimas diez líneas. Esto nos da las líneas 191 a 200. Es decir, las últimas diez líneas de las primeras 200 líneas:
head -n 200 list-1.txt | tail -10
Este comando enumera los cinco procesos que consumen más memoria.
ps aux | sort -nk +4 | tail -5
Analicémoslo.
EL ps
El comando muestra información sobre los procesos en ejecución. Las opciones utilizadas son:
- A: enumera todos los procesos, no solo los del usuario actual.
- tú: Muestra resultados orientados al usuario.
- X: enumera todos los procesos, incluidos aquellos que no se ejecutan dentro de un TTY.
EL sort
el comando ordena la salida de ps
. Las opciones que estamos usando sort
Soy:
- No: Ordenar numéricamente.
- k+4: Ordenar en la cuarta columna.
EL tail -5
El comando muestra los últimos cinco procesos de la salida ordenada. Estos son los cinco procesos que más memoria consumen.
Utilice la cola para rastrear archivos en tiempo real
Es fácil realizar un seguimiento de las nuevas entradas de texto que llegan a un archivo, normalmente un archivo de registro. tail
. Pase el nombre del archivo en la línea de comando y use el archivo -f
(seguir) opción.
tail -f geek-1.log
A medida que se agrega cada nueva entrada de registro al archivo de registro, tail actualiza su visualización en la ventana del terminal.
Puede refinar el resultado para incluir solo líneas de particular relevancia o interés. Aquí estamos usando grep
para mostrar sólo líneas que incluyan la palabra "promedio":
tail -f geek-1.log | grep average
Para realizar un seguimiento de los cambios en dos o más archivos, pase los nombres de los archivos en la línea de comando:
tail -f -n 5 geek-1.log geek-2.log
Cada entrada está marcada con un encabezado que muestra de qué archivo proviene el texto.
La vista se actualiza cada vez que llega una nueva entrada en un archivo seguido. Para especificar el período de actualización, utilice el -s
(período de sueño). esto es lo que dice tail
esperar una cierta cantidad de segundos, cinco en este ejemplo, entre comprobaciones de archivos.
tail -f -s 5 geek-1.log
Claro, no puedes saberlo mirando una captura de pantalla, pero las actualizaciones del archivo ocurren una vez cada dos segundos. Las nuevas entradas de archivos aparecen en la ventana del terminal una vez cada cinco segundos.
Al seguir las adiciones de texto a más de un archivo, puede eliminar los encabezados que indican de qué archivo de registro proviene el texto. Utilizar el -q
Opción (silenciosa) para hacer esto:
tail -f -q geek-1.log geek-2.log
La salida de los archivos se muestra en una combinación continua de texto. No hay indicación de qué archivo de registro proviene cada entrada.
la cola todavía tiene valor
Aunque el acceso a los archivos de registro del sistema ahora lo proporciona journalctl
, tail
todavía tiene mucho que ofrecer. Esto es especialmente cierto cuando se usa junto con otros comandos, al iniciar o cerrar sesión tail
.
systemd
Puede que haya cambiado el panorama, pero todavía hay espacio para utilidades tradicionales que se ajusten a la filosofía Unix de hacer una cosa y hacerlo bien.