Archivo etiqueta PCL
Syslogd: el demonio de las bitácoras
Por Luis Gallardo - Linux - 15/07/2009
Cuando un servicio falla este reporta lo que ha pasado o cuando algo va mal en tu máquina (por ejemplo un problema de hardware) esto también es reportado. Esos mensajes pueden ser encontrados en el directorio /var/log. Por ejemplo, muchos mensajes son reportados en el archivo /var/log/syslog o en el /var/log/messages. Por otro lado, si un servicio genera muchos mensajes muy probablemente estos serán escritos en un archivo separado como lo hace Apache o el servicio de correo.
Todo esto es hecho por un demonio llamado syslogd, el cual es una utilidad del sistema que provee soporte para el registro de mensajes en sistemas *nix. Pero las bitácoras no están reservadas únicamente para las aplicaciones del sistema, tú también puedes registrar tus mensajes usando syslogd, configurando una regla apropiada en el archivo /etc/syslog.conf. Así que , veamos como hacerlo…
Archivo de configuración
En el archivo /etc/syslog.conf (o en el /etc/rsyslog.conf) están definidas las reglas para las bitácoras usando syslogd, una regla por línea. Cada regla sigue esta sintaxis:
selector acción
A su vez, el selector está compuesto de servicio.prioridad, entonces la sintaxis completa sería:
servicio.prioridad acción
El servicio puede ser uno de las siguientes palabras:
| Servicio | Descripción |
| auth | Mensajes de seguridad/autenticación |
| authpriv | Mensajes de seguridad/autenticación (privado) |
| cron | Demonio de tiempo (cron y at) |
| daemon | Demonios del sistema sin valor de servicio separado |
| kern | Mensajes del kernel |
| lpr | Mensajes del servicio de impresión |
| Mensajes del servicio de correo | |
| mark | Para uso interno. No usar al hacer las reglas |
| news | Mensajes del servicio de noticias USENET |
| security (same as auth) | Obsoleto, usar auth |
| syslog | Mensajes generados internamente por syslogd |
| user | Mensajes genéricos a nivel de usuario |
| uucp | mensajes de UUCP |
| local0 a local7 | Reservado para uso local |
La prioridad puede ser una de las palabras listadas en la siguiente tabla. Los mensajes serán reportados por prioridad, deforma ascendente. Por ejemplo, si se especifica la prioridad alert se reportarán los mensajes con prioridad alert, emer y panic, mientras que los crit, error, hasta debug no serán reportados.
| Prioridad | Descripción |
| debug | Usado para depurar servicios, por ejemplo si no están funcionando apropiadamente |
| info | Usado para reportar mensajes informativos. |
| notice | Como la prioridad info, pero haciendo notar algo que puede ser relevante |
| warning | Usado para reportar advertencias. Puede darte pistas sobre errores (si los hubiera) o solo mostrarte que hay algo que no está trabajando como debería, pero que igual sigue funcionando. |
| warn | Igual que warning |
| err | Usado para reportar errores. Por ejemplo, si tienes un servicio mal configurado este reportará esos errores. |
| error | Igual que err |
| crit | Usado para reportar errores más críticos. Por ejemplo errores de hardware. |
| alert | Usado para reportar errores aun más críticos. Se debe tomar algún correctivo inmediatamente. Por ejemplo, corrupción de una base de datos. |
| emerg | Usado para reportar errores realmente críticos. Muy probablemente el servicio está inoperante |
| panic | Igual que emerg |
| none | Usado para deshabilitar el reporte de un servicio. |
La acción describe qué se debe hacer con el mensaje reportado. Comúnmente, todos los mensajes son escritos a un archivo de bitácoras, pero también hay otras acciones como reenviar los mensajes a otra máquina. De forma que el campo acción puede ser uno de los siguientes:
| Acción | Descripción |
| /ruta/de/bitácora | Escribir los mensajes a un archivo de bitácoras |
| | fifo | Usar un fifo o una tubería como el destino de los mensajes. Esto es útil para depuración o enviar correos. Note que el fifo debe ser creado con el comando mkfifo(1) antes de que syslogd(8) sea iniciado |
| /dev/tty[1-6] | Escribir mensajes en las consolas /dev/tty[1-6]. Note que /dev/console también funcionará |
| @192.168.0.1 | Reenviar mensajes a la máquina 192.168.0.1 vía UDP. Debido a la naturaleza de UDP, probablemente se perderán mensajes en tránsito. Si esperas alto volumen de tráfico, debes esperar una pérdida considerable de mensajes. Nota: para aceptar mensajes, el servidor remoto debe correr syslogd con la opción -r (en Debian esta opción puede ser dada en el archivo /etc/default/syslogd o en el /etc/default/rsyslog) |
| :omrelp:192.168.0.1:2514 | Si quieres prevenir la pérdida de mensajes UDP, usa RELP |
| lgallard, atorres | Lista de usuarios. Por defecto, los mensajes críticos son enviados a root |
Modificadores
Básicamente existen tres modificadores: =, ! y *. El modificador “=” le indica a syslogd que debe reportar solo los mensajes con la prioridad exacta. Por ejemplo:
mail.=error /var/log/mail.error
Aquí syslogd reportará solo los mensajes de error. Sin el modificador =, syslogd reportaría los mensajes tipo error, crit, alert y panic. Este modificador solo puede usarse con las prioridades.
El segundo modificador es “!”, el cual invierte el significado de la regla. Por ejemplo:
mail.!error /var/log/mail.error
Syslogd reportará los mensajes con menos prioridad que error, ergo warning, notice, info y debug. Si quieres excluir solo una prioridad, debes usar la combinación !=.
Finalmente, el modificador “*” te permite seleccionar entre los distintos servicios y prioridades. Por ejemplo:
mail.* /var/log/mail.log
Aquí, todos los mensajes provenientes del servicio de correo serán guardados en el archivo /var/log/mail.log, no importando su prioridad. Otro ejemplo:
*.info /var/log/info.log
No importa el servicio, todos los mensajes cuya prioridad sean info serán guardados en el archivo /var/log/info.log.
Operadores coma, y punto y coma
El operador punto y coma te permite escribir varias reglas en una forma más compacta. Por ejemplo:
mail.=info /var/log/info.log mail.=notice /var/log/info.log auth.=info /var/log/info.log
Las reglas anteriores pueden ser escrita en una sola línea:
mail.=info;mail.=notice;auth.=info /var/log/info.log
Por otro lado, si quieres seleccionar varios servicios, puedes usar el operador coma. Por ejemplo:
mail.info /var/log/info.log auth.info /var/log/info.log
Puedes escribir las reglas anteriores en una línea, de la siguiente forma:
mail,auth.info /var/log/info.log
La gran diferencia entre el operador coma y el operador punto y coma es que el primero solo separa servicios y el ultimo puede separar prioridades y servicios, incluso si estos son incompatibles entre sí.
Registro síncrono
Algunas bitácoras deben ser monitoreadas en tiempo real, por ejemplo cuando se está depurando un servicio. El asunto es que syslogd escribe mensajes solo cuando su buffer está lleno, es decir, de forma asíncrona. Si quieres escribir mensajes síncronamente debes colocar un “-” antes de la ruta del archivo donde se guardará las bitácoras.
Ejemplos
Aquí hay unos ejemplos inventados por mí y otros tomados del archivo /etc/syslog.conf:
local3.info /var/log/milog
Usar el servicio local3, reportando mensajes tipo info al archivo /var/log/milog.
auth,authpriv.* /var/log/auth.log
Reportar todas las prioridades para los servicios auth y authpriv en el archivo /var/log/auth.log.
mail.warn -/var/log/mail.warn
Los mensajes de warn del servicio de correo serán guardados en el archivo /var/log/mail.warn síncronamente.
mail.!=error /var/log/mail.error
Todos los mensajes excepto los de error serán guardados en el archivo /var/log/mail.error.
*.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug
Todos los mensajes serán guardados en el archivo /var/log/debug de forma síncrona, excepto aquellos provenientes de los servicios auth, authpriv, news y mail.
El comando logger
Si quieres comunicarte con syslogd, puedes utilizar el comando logger. Por ejemplo, para enviar un mensaje con prioridad info y servicio local3, solo escribe:
logger -p local3.info “Esto es un mensaje”
Referencias
- man syslog
- man logger
- Revista “Todo Linux” . Año 8. Número 92. Páginas 43-47.
FTP activo vs. FTP pasivo
Por Luis Gallardo - Off-Topic - 23/06/2009
El FTP es un servicio TCP que usa un puerto de datos y uno de control o comando. Comúnmente esos puertos son el 20 y el 21, respectivamente. Pero no es siempre es de esa forma…especialmente si estás detrás de un cortafuegos (firewall).
FTP Activo
Veamos como funcionan las conexiones ftp normalmente:
- El cliente se conecta desde un puerto aleatorio no privilegiado (N > 1024) al puerto de control del servidor (21)
- El cliente comienza a escuchar en el puerto N+1 y envía este puerto de control al servidor.
- El servidor se conectará al cliente en el puerto N+1 desde su puerto de datos (20)
Aquí tenemos un ejemplo de conexión:
- El puerto de control del cliente (1026) se conecta al puerto de control del servidor (21) y envía el número del puerto de datos (1027)
- El servidor responde con un ACK al puerto de control del cliente
- El servidor inicia una conexión entre su puerto de datos (20) y el puerto de datos del cliente (1027)
- El cliente responde con un ACK al servidor
FTP Pasivo
El modo activo tiene un inconveniente, si estás detrás de un cortafuegos (firewall) el servidor no podrá establecer una conexión al puerto de datos aleatorio del cliente (el que está por encima de 1024). Para solucionar este detalle, hay otra forma de conexión llamada FTP pasiva:
- El cliente abre dos puertos aleatorios no privilegiados (N > 1024 y N+1)
- El primer puerto (puerto de control) se conecta al puerto 21 del lado del servidor (puerto de control) y envía el comando PASV
- Luego, el servidor abre un puerto aleatorio no privilegiado (P > 1024) y envía el comando PORT P al cliente
- Finalmente, el cliente inicia una conexión desde el puerto N+1 al puerto P en el servidor para transferir datos
Aquí tenemos un ejemplo:
- El puerto de control del cliente (1026) se conecta al servidor al puerto de control (21) y envía el comando PASV
- El servidor responde al cliente con el puerto 2024, el pueto aleatorio de datos abierto para conexiones de datos
- El cliente inicia una conexión desde su puerto de datos (1027) al puerto de datos del servidor (2024)
- Finalmente, el servidor envía de vuelta un ACK al puerto de datos del cliente
Referencia
RAID
Por Luis Gallardo - Off-Topic - 18/06/2009
Según la definición de Wikipedia: “…el acrónimo RAID (originalmente del inglés Redundant Array of Inexpensive Disks, ‘arreglo redundante de discos baratos’, en la actualidad también de Redundant Array of Independent Disks, ‘arreglo redundante de discos independientes’) hace referencia a un sistema de almacenamiento que usa múltiples discos duros entre los que distribuye o replica los datos.”
Esta distribución de los datos en múltiples discos puede ser gestionada por hardware dedicado o por software, o incluso a través de sistemas RAID híbridos basados en software y hardware específico.
Según la configuración que se seleccione, algunos de los beneficios de usar RAID son:
- Integridad de los datos
- Mayor tolerancia a fallos
- Mayor rendimiento
- Mayor capacidad
- Combinación de dispositivos de bajo costo
La especificación RAID original sugería cierto número de “niveles RAID”, cada uno con ventajas y desventajas teóricas. Con el paso de los años han aparecido diferentes implementaciones del conceptop RAID, la mayoría difieren sustancialmente bde los niveles RAID idealizados originalmente, pero se ha conservado la costumbre de llamarlos con números (ejemplo: RAID7)
Leer el resto de la entrada »
Trabajando con tar
Por Luis Gallardo - Linux - 15/06/2009
Si nunca has trabajado con tar antes o si conoces pocas opciones esta entrada te mostrará como usar tar, por lo menos las opciones básicas. Primero que nada, vamos a ver un extracto de la descripción del manual de tar:
“Tar guarda y extrae archivos desde cintas de archivo o disco. El primer argumento debe ser una función; cualquiera de las letras Acdrtux, o uno de los nombres de funciones. Una letra de función no necesita como prefijo ‘-’, y puede combinarse con otras opciones de un solo carácter. Algunas opciones toman un parámetro; con el formato de una sola letra estos deben ser dados como argumentos separados. Una función de nombre largo debe tener el prefijo — Ok, veamos algunas de esas opciones…
Leer el resto de la entrada »
Comando netstat
Por Luis Gallardo - Linux - 21/05/2009

Comando netstat
Según Wikipedia, “Netstat (network statistics) es una herramienta de línea de comandos que muestra un listado de las conexiones activas de un computador, tanto entrantes como salientes”.
Por defecto, netstat sin opciones muestra el estatus de las conexiones actuales listando los conectores. Pero veamos otras opciones que puedes usar con el comando netstat…
Opciones
| Option | Description |
| -e | Muestra información adicional. Use esta opción dos veces para máximo detalle |
| -r | Muestra el contenido de la tabla de rutas IP (es como el comando route) |
| -i | Muestra las interfaces de red y sus estadísticas. |
| -n | Las direcciones, número de puertos, y usuarios son expresados numéricamente y no se intenta resolver nombres |
| -l | Muestra solamente sockets que están escuchando |
| -a | Muestra tanto las socket que están escuchando como los que no (muestra las conexiones TCP activas y los puertos TCP y UDP qu estén escuchando en el computador |
| -s | Muestra la estadística resumen para cada protocolo. Puede usarse el parámetro -p para especificar los tipos de protocolos. |
| -t | Muestra solo las conexiones TCP |
| -u | Muestra solo las conexiones UDP |
| -c | Esto hace que se muestre de forma continua la salida de netstat cada segundo. |
| -p | Muestra el PID y el nombre del programa al cual el socket pertenece |
Interpretando el comando free
Por Luis Gallardo - Linux - 11/05/2009
El comando free muestra la cantidad de memoria libre y usada en el sistema, según el manual (man free). Pero aquí está una de los términos que se presta a confusión en Linux: “memoria usada”. De otros sistemas operativos, estamos acostumbrados a la idea de que “memoria usada” se refiere a memoria que ya se usó, por ende no podemos usarla en el futuro. En Linux, “memoria usada’ significa memoria tomada por el sistema, de forma que pueda ser empleada por usuarios y aplicaciones. Desde este punto de vista entre más memoria usada se tenga, mejor. Si tienes un 1GB de ram y memoria usada de 900 MB, por favor no salgas corriendo a comprar otro giga extra porque lo más probable es que tendrás 1.9 GB de memoria usada…de nuevo, no te preocupes esto es normal.
Preguntas de repaso PCL I y II (Profesional Certificado Linux)
Por Luis Gallardo - Linux - 05/05/2009
Si estás tomando el curso de Profesional Certificado Linux (PCL) en el ISEIT, aquí te dejo unas preguntas de repaso para los exámenes de certificación PCL I y PCL II.
Las respuestas dependen de ti :)
URL del instituto: http://ve.iseit.net
Guía rápida de Vi
Por Luis Gallardo - Linux - 30/04/2009
¿Cansado de usar tu mismo editor de texto? ¿Cansado de estar atado a un editor específico? ¿Tus compañeros de trabajo se burlan porque no entiendes vi?…No te preocupe más!!! Ya está aquí una guía rápida de vi.
¿Cómo funciona Vi?
Quizás estás cansado de vi porque cada vez que intentas utilizarlo no obtienes los resultados esperados. Ok, vamos a hablar de cómo funciona vi. Existen tres modos de operación:
- Modo comando: En este modo, vi espera una acción a ser ejecutada como copiar, pegar o mover el cursor. Este es su comportamiento por defecto, así que cuando abres un archivo y empiezas a escribir no verás lo que estás escribiendo porque estarás ejecutando comandos.
- Modo Insertar: En este modo de hecho puedes escribir en el archivo, pero antes debes usar uno de los comandos de insertar como “i”
- Modo comando extendido: Este es un modo especial donde puedes pasarle argumentos a los comandos. Para entrar en este modo solo escribe dos puntos y el comando. Por ejemplo:
:1,4 y
Esto indica que se debe copiar de la línea 1 a la 4. Ahora vamos a ver algunos comandos agrupados según su funcionalidad:
Movimiento de cursor
| h | Mueve a la izquierda |
| j | Mueve hacia abajo |
| k | Mueve hacia arriba |
| l | Mueve hacia la derecha |
| w | Ir al inicio de la palabra (próxima palabra) |
| e | Ir al final de la palabra actual |
| b | Ir hacia atrás una palabra |
| 0 | Ir al comienzo de línea |
| $ | Ir al final de la línea |
| nG | Ir a la línea n. G solo significa ir a la última línea |
| :n | Ir a la línea n |
Acceso rápido en el terminal
Por Luis Gallardo - Linux - 21/04/2009
Mis alumnos siempre me preguntan cómo limpio la pantalla sin usar el comando clear cuando hago este truquito al trabajar en el terminal. Bien, la respuesta es usando este acceso rápido: Ctrl+l. Inmediatamente después me preguntan si hay más accesos rápidos, y siempre respondo “Si, claro…pero no los recuerdo. Cuando comencé a usar Linux leí algunos de ellos, pero solo me acuerdo de el acceso Ctrl+l”.
Por esto decidí que ya era hora de rechequear estos accesos rápidos y postearlos aquí…
Leer el resto de la entrada »
Comando find
Por Luis Gallardo - Linux - 13/04/2009
En Linux podemos hacer búsquedas de archivos de varias manera. Por ejemplo, desde Nautilus (el navegador de archivos de Gnome) podemos buscar en el directorio actual todos los archivos mp3′s con esta expresión ‘*.mp3′. Pero cuando necesitamos hacer búsquedas más completas, por ejemplo todos los archivos mp3s mayores a 5 MB, Nautilus no es lo más adecuado. Para estos casos tendremos que usar un comando de consola muy versátil y poderoso: find








Planeta Linux
Sígueme