El Linux tail
muestra los datos del final de un archivo. Incluso puede mostrar actualizaciones que se agregan a un archivo en tiempo real. Te mostramos cómo usarlo.
¿De qué vamos a hablar?
¿Systemd Kill cola?
El tail
muestra los datos del final de un archivo. Por lo general, se agregan nuevos datos al final de un archivo, por lo que el tail
es una forma rápida y fácil de ver las adiciones más recientes a un archivo. También puede monitorear un archivo y mostrar cada nueva entrada de texto a ese archivo a medida que ocurren. Esto lo convierte en una gran herramienta para monitorear archivos de registro.
Muchas distribuciones modernas de Linux han adoptado el systemd
gestor de sistemas y servicios. Este es el primer proceso ejecutado, tiene ID de proceso 1, y es el padre de todos los demás procesos. Este rol solía ser manejado por los mayores init
sistema.
Junto con este cambio vino un nuevo formato para los archivos de registro del sistema. Ya no se crea en texto sin formato, en systemd
se graban en formato binario. Para Lea estos archivos de registro, debe utilizar el journactl
utilidad. El tail
funciona con formatos de texto sin formato. No lee archivos binarios. Entonces, ¿esto significa que el tail
comando es una solución en busca de un problema? ¿Todavía tiene algo que ofrecer?
Hay más en el tail
que mostrar actualizaciones en tiempo real. Y para el caso, todavía hay muchos archivos de registro que no se generan en el sistema y todavía se crean como archivos de texto sin formato. Por ejemplo, archivos de registro generados por Aplicaciones no han cambiado su formato.
Uso de la cola
Pasar el nombre de un archivo a tail
y le mostrará las últimas diez líneas de ese archivo. Los archivos de ejemplo que estamos usando 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 diversas opciones.
tail word-list.txt
Para ver un número diferente de líneas, utilice el -n
(número de líneas) opción:
tail -n 15 word-list.txt
En realidad, puede prescindir de la “-n”, y simplemente usar un guión “-” y el número. Asegúrese de que no haya espacios entre ellos. Técnicamente Se trata de un formulario de comando obsoleto, pero todavía está en el página de man, y todavía funciona.
tail -12 word-list.txt
Uso de tail con varios archivos
Puedes tener tail
trabajar con varios archivos a la vez. Simplemente pase los nombres de archivo en la línea de comandos:
tail -n 4 list-1.txt list-2.txt list-3.txt
Se muestra un pequeño encabezado para cada archivo para que sepa a qué archivo pertenecen las líneas.
Visualización de líneas desde el inicio de un FIle
El +
(contar desde el principio) el modificador hace tail
mostrar líneas desde el inicio de un archivo, comenzando por un número de línea específico. Si su archivo es muy largo y elige una línea cerca del inicio del archivo, obtendrá una gran cantidad de salida enviada a la ventana del terminal. Si ese es el caso, tiene sentido canalizar la salida desde tail
en less
.
tail +440 list-1.txt
Puedes página a través del texto de forma controlada.
Debido a que hay 20.445 líneas en este archivo, este comando es el equivalente a usar la opción “-6”:
tail +20440 list-1.txt
Uso de bytes con cola
Se nota tail
Para utilizar desvíos en bytes en lugar de líneas mediante el -c
(bytes) opción. Esto podría ser útil si tiene un archivo de texto que se formateó en registros de tamaño 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
Puede combinar el -c
(bytes) con la opción +
(contar desde el inicio del archivo) modificador y especificar un desplazamiento en bytes contados desde el inicio del archivo:
tail -c +351053 list-e.txt
Tubería en la cola
Anteriormente, canalizamos la salida de tail
en less
. También podemos canalizar la salida de otros comandos en tail
.
Para identificar los cinco archivos o carpetas con los tiempos de modificación más antiguos, utilice el botón -t
(ordenar por tiempo de modificación) opción con ls
, y canalizar la salida en tail
.
ls -tl | tail -5
El head
mandar Enumera líneas de texto desde el principio de un archivo. Podemos combinar esto con tail
para extraer una sección del archivo. Aquí, estamos usando el head
para extraer las primeras 200 líneas de un archivo. Esto se está canalizando hacia tail
, que está extrayendo las últimas diez líneas. Esto nos da las líneas 191 hasta la línea 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 el cinco procesos más hambrientos de memoria.
ps aux | sort -nk +4 | tail -5
Vamos a desglosar eso.
El ps
mandar muestra información sobre los procesos en ejecución. Las opciones utilizadas son:
- un: Enumere todos los procesos, no solo para el usuario actual.
- u: Mostrar una salida orientada al usuario.
- x: Enumere todos los procesos, incluidos los que no se ejecutan dentro de un TTY.
El sort
mandar ordena el resultado De ps
. Las opciones que estamos usando con sort
son:
- n: Ordenar numéricamente.
- k +4: Ordenar en la cuarta columna.
El tail -5
muestra los últimos cinco procesos de la salida ordenada. Estos son los cinco procesos más hambrientos de memoria.
Uso de la cola para rastrear archivos en tiempo real
El seguimiento de las nuevas entradas de texto que llegan a un archivo, generalmente un archivo de registro, es fácil con tail
. Pase el nombre de archivo en la línea de comandos y use el -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 la salida para incluir solo líneas de particular relevancia o interés. Aquí, estamos usando grep
Para solo mostrar líneas que incluyan la palabra “promedio”:
tail -f geek-1.log | grep average
Para seguir los cambios en dos o más archivos, pase los nombres de archivo en la línea de comandos:
tail -f -n 5 geek-1.log geek-2.log
Cada entrada está etiquetada con un encabezado que muestra de qué archivo proviene el texto.
La pantalla 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) opción. Esto indica tail
para esperar un número de segundos, cinco en este ejemplo, entre comprobaciones de archivos.
tail -f -s 5 geek-1.log
Es cierto que no se puede decir mirando una captura de pantalla, pero las actualizaciones al archivo están sucediendo una vez cada dos segundos. Las nuevas entradas de archivo están siendo se muestra en la ventana del terminal una vez cada cinco segundos.
Cuando siga las adiciones de texto a más de un archivo, puede suprimir los encabezados que indican de qué archivo de registro proviene el texto. Utilice 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 mezcla perfecta de texto. No hay ninguna indicación de qué archivo de registro proviene cada entrada.
Tail todavía tiene valor
Aunque el acceso a los archivos de registro del sistema ahora es proporcionado por journalctl
, tail
todavía tiene mucho que ofrecer. Esto es especialmente cierto cuando se usa junto con otros comandos, entubando dentro o fuera de tail
.
systemd
podría haber cambiado el panorama, pero todavía hay un lugar para las utilidades tradicionales que se ajustan a la filosofía de Unix de hacer una cosa y hacerlo bien.