#4sysadmins

Inicio » Comandos relacionados con el registro del sistema y los logfiles

Comandos relacionados con el registro del sistema y los logfiles

logger: Con esta utilidad podremos crear entradas de registros en syslog. Por defecto serán registradas en /var/log/messages.

logger [opciones] mensaje

Opciones:

  • Usar UDP en lugar de TCP (por defecto): -d, –udp
  • Agregar el PID en cada línea: -i, –id
  • Usar un archivo de registro específico. No puede ser usada desde la línea de comandos: -f, –file <archivo>
  • Escribir en el registro de un sistema remoto a través de UDP: -n, –server <servidor>
  • Usar un puerto UDP específico, 514 por defecto: -p, –port <puerto>
  • Enviar los registros con una prioridad por defecto. Puede especificarse como un selector (recurso.prioridad): -p, –priority <selector>
  • Enviar el mensaje a la salida de error estándar además de al log del sistema: -s, –stderr
  • Filtrar el mensaje por un determinado socket: -u, –socket <socket>

syslog: Podemos arrancar el servicio syslog con diferentes opciones, aunque el mejor método es especificar todas las opciones en su archivo de configuración y arrancarlo a partir de este, el cual es leído por defecto (/etc/syslog.conf). Aún así destacamos las opciones:

  • Arrancar con otro archivo de configuración diferente: -f archivo
  • Enviar los mensajes recibidos a un host remoto: -h <host>
  • Especificar que el nombre del host remoto va en formato simple y no con fqdn. Podemos separar varios hosts con ‘:‘ : -l <host>
  • Configurar un host para que permita recibir mensajes desde la red: -r
  • Especificar un intervalo de tiempo entre dos líneas marcadas (por defecto 20 minutos): –m <intervalo>

syslog-ng: Permite reenviar eventos (mensajes) al log del sistema a partir de determinadas fuentes. Es una mejora del tradicional syslog.

syslog-ng [opciones]

Opciones:

  • Usar un determinado fichero de configuración: -f, –cfgfile <archivo>
  • Iniciar syslog-ng en modo de depuración: -d, –debug
  • Habilitar los registros para archivos de volcados (core files): –enable-core
  • Inicializar en foreground y no como demonio: -F, –foreground
  • Cambiar los autoría del archivo de registro a un determinado usuario o grupo. Deben de tener permisos de escritura en /var/log: -u, –user <usuario> y -g, –group <grupo>
  • Enviar los mensajes de errores a la salida de error estándar (stderr): -e, –stderr
  • Establecer un archivo syslog-ng.persistent donde se almacenarán las opciones y datos persistentes: -R, –persist-file <archivo>
  • Ignorar las opciones y datos del archivo persistente: –ignore-persistent
  • Especificar el fichero pid, por defecto (/var/run/syslog-ng.pid): -p, –pidfile <archivo>

rsyslogd: Podemos iniciar el demonio rsyslogd con una serie de opciones adicionales. El archivo de configuración de rsyslogd es /etcrsyslog.conf

rsyslogd [opciones]

Algunas opciones:

  • Escuchar solo desde IPv4 (por defecto escucha desde IPv6 también): -4
  • Escuchar solo desde IPv6: -6
  • Ejecutar en modo debug (opción avanzada para desarrolladores): -d
  • Especificar un fichero de configuración alternativo: -f <archivo>
  • Cuando existen varias instancias de rsyslog en una misma máquina, podemos seleccionar archivos de pid diferentes: -i <pid file>
  • Especificar un nombre de host sin su fqdn: -l <host1:host2:…:hostN>

journalct: Es la herramienta que nos permite consultar los registros de eventos de los sistemas con systemd.

  • Mostrar los mensajes del arranque actual:
journalctl -b
journalctl -b 0
  • Mostrar los mensajes del arranque anterior o incluso del anterior al anterior (y sucesivos):
journalctl -b -1
journalctl -b -2
...
  • Mostrar los mensajes de error de un arranque anterior:
journalctl -b -p err
  • Mostrar los mensajes de un binario concreto:
journalctl /usr/bin/<binario>
  • Mostrar los mensajes de un proceso concreto:
journalctl _PID=<proceso>
  • Mostrar todos los mensajes para un servicio concreto:
journalctl _SYSTEMD_UNIT=httpd.service
  • Mostrar todos los mensajes de unidades que contengan un patrón específico:
journalctl -u <patrón>
  • Ver el búfer circular del kernel:
journalctl _TRANSPORT=kernel
  • Usar operadores AND (espacio) y OR (+) para filtrar mensajes:
journalctl _SYSTEMD_UNIT=httpd.service + -u http _PID=3412
  • Mostrar registros para un dispositivo específico:
journalctl /dev/sdb
  • Podremos especificar un intervalo de tiempo con los parámetros -since y -until. El intervalo puede ser especificado de manera explicita para días como ‘yesterday‘, ‘today‘ o ‘tomorrow‘, o indicando la fecha mediante el formato “YYYY-MM-DD hh:mm:ss

logrotate: Rotar, comprimir y enviar logs por emails

logrotate [opciones] archivo_de_configuración

Opciones:

  • Pasar a modo debug: -d
  • Forzar la rotación de archivos: -f, –force
  • Enviar un archivo de log por correo: -m, –mail <comando> donde comando acepta el asunto del correo y el destinatario. Por defecto el comando utilizado es /usr/bin/mail -s

dmesg: Imprimir o controlar el búfer circular del kernel

dmesg [opciones]

Opciones:

  • Limpiar el búfer: -C, –clear
  • Leer el búfer y luego eliminarlo: -c, –read-clear
  • Eliminar la impresión de mensajes por consola: -D, –console-off
  • Habilitar los mensajes por consola: -E, –console-on
  • Listar los mensajes para determinados recurso (facility): -f, –facility <recursos>
  • Imprimir los mensajes del kernel: -k, –kernel
  • Restringir la salida de los mensajes a una determinada prioridad: -l, –level prioridad1,prioridad2,…,prioridadN
  • No imprimir los timestamp en los mensajes: -t, –notime
  • Imprimir el timestamp con unidades legibles por humanos: -T, –ctime
  • Usar un tamaño para desplegar el búfer. SI el tamaño es mayor al del bufer todo el contenido será imprimido: -s, –buffer-size <tamaño>

who: Muestra que usuarios están logueados en el sistema, así como información sobre la consola o entorno, fecha y hora de entrada, PID, id y display. En realidad lo que hace es desplegar el contenido del archivo de formato binario utmp.

who [opciones]

Opciones:

  • Ver el último inicio del sistema: -b
  • Mostrar la IP en vez del nombre: –ips
  • Mostrar el runlevel actual: -r
  • Mostrar los usuarios conectados: -u
  • Mostrar todo: -a, –all

Mostrar el histórico de logueos en el sistema guardados en el archivo wtmp:

$ sudo who /var/log/wtmp

Nota: Mejor que utilizar who para desplegar el contenido del archivo wtmp será usar el comando last destinado a esta tarea.

w: Parecido a who pero además muestra que está haciendo cada usuario.

last: Despliega directamente el contenido del archivo /var/log/wtmp. Además muestra mas información sobre los logueos de los usuarios como nombre, terminal, display, fecha de inicio e incluso las fechas de los reinicios del sistema.

lastb: Igual que last pero muestra los logueos fallidos en el sistema.

lastlog: Despliega el contenido del archivo /var/log/lastlog. Este archivo contiene el nombre del login, el puerto y la fecha de ultimo inicio de todos los usuarios. Podemos filtrar la salida con sus opciones.

lastlog [opciones]

Opciones:

  • Imprimir los registros anteriores a un determinado número de días: -b, –before <días>
  • Imprimir los registros desde un determinado día ha la fecha actual: -t, –time <días>
  • Imprime los registros para un determinado usuario: -u, –user <login>

Deja un comentario, Gracias!