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.

→ Índice de contenidos
  • ¿Systemd ha matado la cola?
  • Usando cola en Linux
  • Usando cola con múltiples archivos
  • Ver líneas desde el principio de un archivo
  • Usando bytes en cola
  • Tubos en la cola
  • Utilice la cola para rastrear archivos en tiempo real
  • la cola todavía tiene valor
  • ¿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

    tail -n 15 word-list.txt en una ventana de terminal

    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

    tail -12 word-list.txt en una ventana de terminal

    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

    tail -n 4 list-1.txt list-2.txt list-3.txt en una ventana de terminal

    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

    tail +44 list-1.txt en una ventana de terminal

    Puede navegar por el texto de forma controlada.

    La salida de tail se muestra en less en una ventana de terminal

    Dado que hay 20.445 líneas en este archivo, este comando equivale a utilizar la opción "-6":

    tail +20440 list-1.txt

    tail +20440 list-1.txt en una ventana de terminal

    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

    tail -c 93 list-2.txt en una ventana de terminal

    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

    tail -c +351053 list-e.txt en una ventana de terminal

    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

    ls-lt |  cola -5 en una ventana de terminal

    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

    cabeza -n 200 lista-1.txt |  cola -10 en una ventana de terminal

    Este comando enumera los cinco procesos que consumen más memoria.

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

    ps auxiliar |  ordenar -nk +4 |  cola -5 en una ventana de terminal

    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.
    • : 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

    tail -f geek-1.log en una ventana de terminal

    A medida que se agrega cada nueva entrada de registro al archivo de registro, tail actualiza su visualización en la ventana del terminal.

    Salida de tail -f geek-1.log en una ventana de 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

    cola -f geek-1.log |  grep media en una ventana de terminal

    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

    tail -f -n 5 geek-1.log geek-2.log en una ventana de terminal

    Cada entrada está marcada con un encabezado que muestra de qué archivo proviene el texto.

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

    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

    tail -f -s 5 geek-1.log en una ventana de terminal

    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.

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

    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

    tail -f -q geek-1.log geek-2.log en una ventana de terminal

    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.

    Salida de tail -f -q geek-1.log geek-2.log a una ventana de terminal

    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.

    Subir Change privacy settings