Cómo usar el comando tail en Linux

  • Dave McKay

    @TheGurkha

  • 28 de enero de 2020, 8:00am EDT
Fatmawati Achmad Zaenuri/

el comando 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.

¿systemd mató a tail?

el comando 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 comando 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 en ese archivo a medida que se producen. Esto lo convierte en una gran herramienta para monitorear archivos de registro.

muchas distribuciones modernas de Linux han adoptado el systemd system and service manager. 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 el antiguo sistema init.,

Advertisement

junto con este cambio vino un nuevo formato para los archivos de registro del sistema. Ya no se crean en texto plano, bajo systemd se graban en un formato binario. Para leer estos archivos de registro, debe usar la utilidad journactl. El comando tail funciona con formatos de texto sin formato. No lee archivos binarios. Entonces, ¿esto significa que el comando tail es una solución en busca de un problema? ¿Todavía tiene algo que ofrecer?,

hay más en el comando tail que mostrar actualizaciones en tiempo real. Y para el caso, todavía hay un montón de archivos de registro que no se generan en el sistema y todavía se crean como archivos de texto sin formato. Por ejemplo, los archivos de registro generados por las aplicaciones no han cambiado su formato.

usando tail

pase 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, use la opción -n (número de líneas):

tail -n 15 word-list.txt
Advertisement

en realidad, puede prescindir de la «-n», y solo use una guión «-» y el número. Asegúrese de que no haya espacios entre ellos. Técnicamente, esta es una forma de comando obsoleta, pero todavía está en la página man, y todavía funciona.,

tail -12 word-list.txt

el Uso de la cola Con Varios Archivos

Usted puede 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.

Mostrar líneas desde el inicio de un archivo

el modificador + (count from the start) hace que tail muestre 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 salida enviada a la ventana de terminal. Si ese es el caso, tiene sentido canalizar la salida de tail a less.

tail +440 list-1.txt
Advertisement

puede navegar por el texto de manera controlada.,

debido a que hay 20,445 líneas en este archivo, este comando es el equivalente de usar la opción «-6»:

tail +20440 list-1.txt

usando Bytes con cola

puede decirle a tail que use compensaciones en bytes en lugar de líneas usando el -c (bytes) opción. Esto podría ser ú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 en el archivo:

tail -c 93 list-2.txt

puede combinar la opción -c (bytes) con el modificador + (count from the start of the file), y especificar un desplazamiento en bytes contados desde el inicio del file:

tail -c +351053 list-e.txt

piping into tail

anteriormente, canalizamos la salida de tail En less . También podemos canalizar la salida de otros comandos a tail.,

Advertisement

para identificar los cinco archivos o carpetas con los tiempos de modificación más antiguos, use la opción -t (Ordenar por tiempo de modificación) con ls , y canalice la salida a tail.

ls -tl | tail -5

el comando head 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 comando head para extraer las primeras 200 líneas de un archivo., Esto está siendo canalizado en 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 los cinco procesos más hambrientos de memoria.

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

Vamos a acabar con eso.

el comando ps muestra información sobre los procesos en ejecución. Las opciones utilizadas son:

  • a: listar todos los procesos, no solo para el usuario actual.
  • u: muestra una salida orientada al usuario.,
  • x: lista todos los procesos, incluidos los que no se ejecutan dentro de un TTY.

Advertisement

el comando sort ordena la salida de ps . Las opciones que estamos usando con sort son:

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

el comandotail -5 muestra los últimos cinco procesos de la salida ordenada. Estos son los cinco procesos más hambrientos de memoria.,

usar tail para rastrear archivos en tiempo Real

rastrear nuevas entradas de texto que llegan a un archivo, generalmente un archivo de registro, es fácil con tail. Pase el nombre del archivo en la línea de comandos y use la opción -f (seguir).

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 de terminal.

Advertisement

puede refinar la salida para incluir solo líneas de particular relevancia o interés., Aquí, estamos usando grep para mostrar solo las líneas que incluyen 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 eso muestra de qué archivo vino el texto.

la pantalla se actualiza cada vez que una nueva entrada llega a un archivo seguido. Para especificar el período de actualización, utilice la opción -s (período de suspensión)., Esto le dice a tail que espere un número de segundos, cinco en este ejemplo, entre las comprobaciones de archivos.

tail -f -s 5 geek-1.log
Advertisement

Es cierto que no se puede saber mirando una captura de pantalla, pero las actualizaciones del archivo se producen una vez cada dos segundos. Las nuevas entradas de archivo se muestran en la ventana del terminal una vez cada cinco segundos.

cuando está siguiendo 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 la opción -q (quiet) 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 utiliza en conjunto con otros comandos, mediante la tubería dentro o fuera de tail.,

Advertisement

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.

Dave McKay
Dave McKay usó computadoras por primera vez cuando la cinta de papel perforado estaba de moda, y ha estado programando desde entonces. Después de más de 30 años en la industria de ti, ahora es un periodista tecnológico a tiempo completo., Durante su carrera, ha trabajado como programador freelance, gerente de un equipo internacional de desarrollo de software, gerente de proyectos de servicios de ti y, más recientemente, como oficial de protección de datos. Dave es un evangelista de Linux y defensor del código abierto.Leer la Biografía Completa «

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *