Los sistemas Linux disponen de una amplia variedad de herramientas de administración. Éstas facilitan la tarea de los administradores de sistemas, en especial a aquéllos que tienen poca experiencia en sistemas Linux. Vale la pena notar que estas herramientas son muy útiles, pero pueden estar incompletas al compararlas con las ejecutadas desde la línea de comando. Otra desventaja de las herramientas gráficas es que usualmente son específicas para un sistema; es decir, que pueden funcionar en una versión de Linux, pero no en otra.
Todo sistema Linux debe tener un usuario que realice las tareas de administración, el cual se encuentra asociado al usuario root. La administración de un sistema Linux incluye diferentes tareas. Desde la instalación del sistema operativo hasta las medidas de seguridad que se utilizarán. Como administrador de sistema es importante mantenerse al tanto de los avances tecnológicos, tanto en hardware como en software, con el objetivo de conservar un sistema estable, seguro y eficiente. EJECUCIÓN CRONOLÓGICA. Las herramientas cronológicas permiten programar la ejecución de undeterminado programa en un momento determinado. Por ejemplo, se puede programar una copia de seguridad, envío de un archivo, comprobar seguridad del sistema, envío de un informe, etc. Una de las herramientas más usadas para esta tarea es el cron. Antes de programar una tarea debemos verificar que el servicio crond se encuentre en ejecución mediante el comando: # service crond status Para modificar el archivo de configuración de crond, ejecuta el comando: # crontab –e Y aparece un fichero con el siguiente contenido:
En este ejemplo se ejecuta el script comprobar_seguridad.sh todos los días a las 0:00 h y se ejecuta copia_seguridad.sh el primer día de cada mes. Control de procesos. Los procesos son tareas que están siendo ejecutadas por el sistema operativo en un determinado momento. Existen diferentes tipos de proceso dependiendo de ciertas características. Procesos interactivos. Estos procesos dependen de la terminal que los ha activado. Existen procesos de background, a los que nos referimos como corriendo en background o ejecutándose en el background; de igual forma están los procesos de foreground. El estado background se refiere a que al ser activado desde una terminal, el proceso se ejecuta de forma independiente a ésta. Esto significa que la terminal es liberada y puede ser utiliza para ejecutar otros comandos. El estado foreground, en cambio,congela la terminal, dejándola sin capacidad de ejecutar otra tarea mientras el proceso siga en ejecución. Los procesos que se ejecutan en background se les conoce con el nombre de job y reciben un número en el momento que inicia su ejecución. Si al ejecutar un comando, el prompt de Linux # no aparece, significa que la terminal quedó atada al proceso y nada más podrá ejecutarse en esa terminal mientras no termine la tarea. La manera de liberar la terminal es matando el proceso; para esto vamos a usar el teclado oprimiendo las teclas CTRL y c. También es posible eliminar un proceso al utilizar el comando kill, cuya sintaxis esla siguiente: # kill <num_proceso> Para saber el número que identifica al proceso usar el comando ps. Demonios. Los demonios se definen como tareas silenciosas o programas residentes y son aquéllos que se encuentran permanentemente cargados en la memoria del sistema ejecutándose en background a la espera que algún otro proceso necesite de sus servicios. Los demonios más comunes se encuentran relacionados con servicios como las redes, programas de conectividad, correo, impresión, entre otros. Atributos de un proceso. El comando ps (process status) nos muestra los atributos de los procesos. La lista que se muestra a continuación en la siguiente figura es una referencia a los atributos más importantes:
C cmdline Nombre completo del comando f flags Banderas de formato largo g pgrp Identidad del grupo del proceso G tpgid Identificación del grupo del proceso de la terminal i cutime Tiempo acumulado del usuario J cstime Tiempo acumulado del sistema k utime Tiempo del usuario K stime Tiempo del sistema o session Identificación de la sesión p pid Identificador del proceso P ppid Identificador del proceso padre R resident Páginas residentes s size Tamaño de la memoria en kb S share Cantidad de páginas compartidas t tty Número del dispositivo de la terminal T start_time Tiempo transcurrido desde que el proceso inicio U uid Identificador del usuario u user Nombre del usuario v vsize Tamaño total de la memoria virtual en bytes y priority Prioridad de scheduling en el núcleo
De acuerdo con la forma en que se ejecute el comando ps, los campos de atributos que se muestran varían. Una forma muy útil de usarlo es en combinación con el comando grep para verificar si un proceso está en ejecución. Por ejemplo, para verificar si Mozilla está en ejecución ingresamos el comando así: # ps –ef | grep mozilla El carácter | se llama pipe o tubería. En este caso significa ejecute el comando ps –efy luego pasarle los resultados al comando grep. Todos los procesos, excepto el init, tienen un proceso padre que inició su ejecución. El nuevo proceso será llamado hijo y aunque depende del padre, se le asignará un número de proceso. En la siguiente tabla se muestra un resumen de los comandos más utilizados para el control de procesos.
MEDIDAS DE RENDIMIENTO. Para conocer el comportamiento del sistema es necesario obtener información sobre los diferentes subsistemas que lo componen. En Linux se dispone de una serie de comandos que nos proporcionan datos sobre el rendimiento del hardware y el sistema operativo. Según el tipo de información que presentan, los comandos se pueden clasificar en: Procesos: muestran información sobre los procesos que se están ejecutando en el sistema. Almacenamiento: proporcionan información sobre la entrada y salida al subsistema de almacenamiento. Memoria: proporcionan información sobre el espacio de memoria real yswap. Red: facilitan estadísticas sobre el uso de las interfaces de red. Polivalentes: muestran información sobre distintos subsistemas del equipo. En la siguiente tabla se muestra un resumen de las herramientas básicas para monitorización de un sistema Linux.
REVISIÓN DE FICHEROS HISTÓRICOS. Los ficheros históricos, también denominados logs o bitácoras, mantienen un registro con información sobre lo que ha pasado en el sistema. Los eventos registrados pudieron haber sido generados por el núcleo del sistema, por un servicio, por aplicaciones instaladas o por una alerta de seguridad. Estos archivos se almacenan en el directorio /var/log y deben ser revisados deforma periódica por el administrador de sistema para comprobar el estado delservidor. Los logs son generalmente archivos de texto que pueden ser revisadoscon cualquier comando de Linux como el more, cat o grep. El registro de todos losmensajes del sistema los realiza el servicio syslogd (o rsyslogd). Aunque el syslogdsea el principal gestor de los logs, existen algunas aplicaciones, demonios y scriptsque escriben sus propios logs. Si requieres monitorear de manera automáticavarios equipos lo mejor es utilizar las herramientas Nagios y Centreon. En la mayoría de los casos un evento es registrado como una sola línea de texto enel archivo log. La información almacenada con cada evento incluye la fecha y hora,el tipo y severidad del evento, además de otros detalles relevantes.Los archivos logs pueden llegar a crecer mucho y de forma muy rápida, en especialpara servicios como correo, web y DNS. Un log fuera de control puede llenar eldisco duro y provocar la caída del sistema Linux. Por esta razón es deseablemantener los archivos logs en una partición separada del sistema operativo. Otramedida recomendable es planificar una tarea en el cron con logrotate; estaherramienta renombra los logs añadiendo un número de orden de tal forma que elnúmero mayor es el más antiguo; asimismo, permite comprimir los logs e indicar eltiempo que deseamos mantenerlos antes de ser borrados. En la siguiente figura semuestra un ejemplo de un archivo de configuración de logrotate. Esta configuraciónse ejecutará a diario, se mantendrán siete archivos logs, los archivos seráncomprimidos, se excluyen logs vacíos y se crean con permisos para el usuario ygrupo linuxuser.