Cómo usar el comando tail en Linux

Contenidos

Una ventana de terminal que muestra un indicador de Bash en una computadora portátil Linux de estilo Ubuntu.

El Linux tail El comando muestra datos desde el final de un archivo. Inclusive puede mostrar las actualizaciones que se agregan a un archivo en tiempo real. Te mostramos cómo usarlo.

¿Systemd Kill Tail?

los tail El comando muestra datos desde el final de un archivo. Por lo general, los datos nuevos se agregan al final de un archivo, por lo que tail El comando es una forma rápida y fácil de ver las adiciones más recientes a un archivo. Además puede monitorear un archivo y mostrar cada nueva entrada de texto en 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 la systemd Gerente de sistemas y servicios. Este es el primer procedimiento ejecutado, tiene ID de proceso 1y 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 registran en formato binario. Para leer estos archivos de registro, debe utilizar los journactl utilidad. los tail El comando funciona con formatos de texto sin formato. No lee archivos binarios. Entonces, ¿esto significa que tail ¿El comando es una solución en busca de un obstáculo? ¿Aún tiene algo que ofrecer?

Hay más en el tail comando que mostrar actualizaciones en tiempo real. Y en realidad, aún hay muchos archivos de registro que no son generados por el sistema y aún se crean como archivos de texto sin formato. A modo de ejemplo, archivos de registro generados por aplicaciones no han cambiado su formato.

Usando 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 disponen las distintas opciones.

tail word-list.txt

Para ver un número distinto de líneas, use el -n (número de líneas) opción:

tail -n 15 word-list.txt

En realidad, puede prescindir de la “-n” y usar un guión “-” y el número. Asegúrese de que no haya espacios entre ellos. Técnicamente, este es un formulario de comando obsoleto, pero aún está en el página many aún funciona.

tail -12 word-list.txt

Usando tail con muchos archivos

Tu puedes tener tail trabajar con muchos archivos al mismo tiempo. Simplemente pase los nombres de archivo en la línea de comando:

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 archivo

los + (cuenta desde el principio) modificador hace tail mostrar líneas desde el inicio 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 inicio del archivo, obtendrá una gran cantidad de resultados enviados a la ventana de la terminal. Si ese es el caso, tiene sentido canalizar la salida de tail dentro less.

tail +440 list-1.txt

Usted puede hojear el texto de forma controlada.

Debido a que hay 20,445 líneas en este archivo, este comando es el semejante a utilizar la opción «-6»:

tail +20440 list-1.txt

Usando bytes con cola

Puedes decir tail para utilizar compensaciones en bytes en lugar de líneas usando el -c (bytes) opción. Esto puede resultar útil si tiene un archivo de texto formateado 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

Puedes combinar el -c (bytes) opción con la + (contar desde el inicio del archivo) y especificar un desplazamiento en bytes contados desde el inicio del archivo:

tail -c +351053 list-e.txt

Tubería en la cola

Previamente, canalizamos la salida de tail dentro less . Además 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 canalice la salida a tail.

ls -tl | tail -5

los head mando enumera líneas de texto desde el inicio de un archivo. Podemos combinar esto 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 se canaliza a tail, que extrae las últimas diez líneas. Esto nos da las líneas 191 hasta la línea 200. Dicho de otra forma, 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 más memoria consumen.

ps aux | sort -nk +4 | tail -5

Analicemos eso.

los ps mando muestra información sobre los procesos en ejecución. Las alternativas utilizadas son:

  • a: Enumera todos los procesos, no solo para el usuario actual.
  • tu: Muestra una salida orientada al usuario.
  • X: Enumere todos los procesos, incluidos los que no se ejecutan dentro de un TTY.

los sort mando ordena la salida de ps . Las alternativas que estamos usando con sort están:

  • norte: Ordenar numéricamente.
  • k +4: Ordene en la cuarta columna.

los tail -5 El comando muestra los últimos cinco procesos de la salida ordenada. Estos son los cinco procesos que más memoria consumen.

Uso de tail para rastrear archivos en tiempo real

El seguimiento de las nuevas entradas de texto que llegan a un archivo, de forma general un archivo de registro, es fácil con tail. Pase el nombre del archivo en la línea de comando 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 especial 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 comando:

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.

Salida de tail -f -n 5 geek-1.log geek-2.log

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 reposo). Esto dice tail esperar varios segundos, cinco en este ejemplo, entre comprobaciones de archivos.

tail -f -s 5 geek-1.log

Es cierto que no se puede saber al mirar 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 mostrado en la ventana del terminal una vez cada cinco segundos.

Salida de tail -f -s 5 geek-1.log

Cuando sigue las adiciones de texto a más de un archivo, puede suprimir los encabezados que indican de qué archivo de registro proviene el texto. Usar 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 perfecta de texto. No hay ninguna indicación de qué archivo de registro proviene cada entrada.

la cola aún tiene valor

Aún cuando ahora el acceso a los archivos de registro del sistema lo proporciona journalctl, tail aún tiene mucho que ofrecer. Esto es especialmente cierto cuando se utiliza junto con otros comandos, entrando o saliendo de tail.

systemd podría haber cambiado el panorama, pero aún hay un lugar para las utilidades tradicionales que se ajustan a la filosofía de Unix de hacer una cosa y hacerlo bien.

setTimeout(function(){
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘335401813750447’);
fbq(‘track’, ‘PageView’);
},3000);

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.