Búsqueda de sitios web

Serie RHCSA: Gestión de paquetes Yum, automatización de tareas con Cron y registros del sistema de monitoreo - Parte 10


En este artículo revisaremos cómo instalar, actualizar y eliminar paquetes en Red Hat Enterprise Linux 7. También cubriremos cómo automatizar tareas usando cron y terminaremos esta guía explicando cómo localizar e interpretar archivos de registros del sistema con el objetivo de enseñarle por qué todas estas son habilidades esenciales para todo administrador de sistemas.

Administrar paquetes a través de Yum

Para instalar un paquete junto con todas sus dependencias que aún no están instaladas, utilizará:


yum -y install package_name(s)

Donde nombre_paquete(s) representa al menos un nombre de paquete real.

Por ejemplo, para instalar httpd y mlocate (en ese orden), escriba.


yum -y install httpd mlocate

Nota: La letra y en el ejemplo anterior omite las indicaciones de confirmación que presenta yum antes de realizar la descarga e instalación real de los programas solicitados. Puedes omitirlo si quieres.

De forma predeterminada, yum instalará el paquete con la arquitectura que coincida con la arquitectura del sistema operativo, a menos que se anule agregando la arquitectura del paquete a su nombre.

Por ejemplo, en un sistema 64 bits, yum install package instalará la versión x86_64 del paquete, mientras que yum install package.x86 (si está disponible) instalará el de 32 bits.

Habrá ocasiones en las que querrás instalar un paquete pero no sabrás su nombre exacto. Las opciones buscar todo o buscar pueden buscar en los repositorios actualmente habilitados una determinada palabra clave en el nombre del paquete y/o también en su descripción, respectivamente.

Por ejemplo,


yum search log

buscará en los repositorios instalados paquetes con la palabra log en sus nombres y resúmenes, mientras que


yum search all log

También buscará la misma palabra clave en la descripción del paquete y en los campos url.

Una vez que la búsqueda arroje una lista de paquetes, es posible que desee mostrar más información sobre algunos de ellos antes de realizar la instalación. Entonces es cuando te vendrá bien la opción info:


yum info logwatch

Puede buscar actualizaciones periódicamente con el siguiente comando:


yum check-update

El comando anterior devolverá todos los paquetes instalados para los cuales hay una actualización disponible. En el ejemplo que se muestra en la imagen siguiente, solo rhel-7-server-rpms tiene una actualización disponible:

Luego puede actualizar ese paquete solo con,


yum update rhel-7-server-rpms

Si hay varios paquetes que se pueden actualizar, yum update los actualizará todos a la vez.

Ahora, ¿qué sucede cuando conoce el nombre de un ejecutable, como ps2pdf, pero no sabe qué paquete lo proporciona? Puedes averiguar con yum qué proporciona “*/[ejecutable] ”:


yum whatprovides “*/ps2pdf”

Ahora, cuando se trata de eliminar un paquete, puedes hacerlo con yum remove package. Fácil, ¿eh? Esto demuestra que yum es un administrador de paquetes completo y poderoso.


yum remove httpd

Lea también: 20 comandos de Yum para gestionar la gestión de paquetes de RHEL 7

Buenas RPM simples y antiguas

RPM (también conocido como RPM Package Manager u originalmente RedHat Package Manager) también se puede utilizar para instalar o actualizar paquetes cuando vienen de forma independiente. Paquetes .rpm.

A menudo se utiliza con los indicadores -Uvh para indicar que debe instalar el paquete si aún no está presente o intentar actualizarlo si está instalado (-U), lo que produce una salida detallada (-v) y una barra de progreso con marcas hash (-h) mientras se realiza la operación. Por ejemplo,


rpm -Uvh package.rpm

Otro uso típico de rpm es producir una lista de paquetes actualmente instalados con código>rpm -qa (abreviatura de consultar todo):


rpm -qa

Lea también: Comandos de 20 RPM para instalar paquetes en RHEL 7

Programación de tareas usando Cron

Linux y otros sistemas operativos similares a Unix incluyen una herramienta llamada cron que le permite programar tareas (es decir, comandos o scripts de shell) para que se ejecuten periódicamente. Cron comprueba cada minuto el directorio /var/spool/cron en busca de archivos con nombres de cuentas en /etc/passwd.

Al ejecutar comandos, cualquier resultado se envía por correo al propietario del crontab (o al usuario especificado en la variable de entorno MAILTO en el /etc/crontab, si existe).

Los archivos Crontab (que se crean escribiendo crontab -e y presionando Entrar) tienen el siguiente formato:

Por lo tanto, si queremos actualizar la base de datos de archivos local (que es utilizada por localizar para buscar archivos por nombre o patrón) cada segundo día del mes a las 2:15 am, debemos agregar lo siguiente Entrada crontab:


15 02 2 * * /bin/updatedb

La entrada del crontab anterior dice: “Ejecute /bin/updatedb el segundo día del mes, todos los meses del año, independientemente del día de la semana, a las 2:15 am”. Como seguramente ya habrás adivinado, el símbolo de la estrella se utiliza como carácter comodín.

Después de agregar un trabajo cron, puede ver que se agregó un archivo llamado root dentro de /var/spool/cron, como mencionamos anteriormente. Ese archivo enumera todas las tareas que debe ejecutar el demonio crond:


ls -l /var/spool/cron

En la imagen de arriba, el crontab del usuario actual se puede mostrar usando cat /var/spool/cron/root o,


crontab -l

Si necesita ejecutar una tarea de forma más detallada (por ejemplo, dos veces al día o tres veces al mes), cron también puede ayudarle a hacerlo.

Por ejemplo, para ejecutar /my/script el día 1 y el 15 de cada mes y enviar cualquier resultado a /dev/null, puede agregue dos entradas crontab de la siguiente manera:


01 00 1 * * /myscript > /dev/null 2>&1
01 00 15 * * /my/script > /dev/null 2>&1

Pero para que la tarea sea más fácil de mantener, puedes combinar ambas entradas en una:


01 00 1,15 * *  /my/script > /dev/null 2>&1

Siguiendo el ejemplo anterior, podemos ejecutar /my/other/script a la 1:30 am del primer día del mes cada tres meses:


30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1

Pero cuando tienes que repetir una determinada tarea cada “x” minutos, horas, días o meses, puedes dividir la posición correcta por la frecuencia deseada. La siguiente entrada crontab tiene exactamente el mismo significado que la anterior:


30 01 1 */3 * /my/other/script > /dev/null 2>&1

O tal vez necesite ejecutar un determinado trabajo con una frecuencia fija o después de que se inicie el sistema, por ejemplo. Puede utilizar una de las siguientes cadenas en lugar de los cinco campos para indicar la hora exacta en la que desea que se ejecute su trabajo:


@reboot    	Run when the system boots.
@yearly    	Run once a year, same as 00 00 1 1 *.
@monthly   	Run once a month, same as 00 00 1 * *.
@weekly    	Run once a week, same as 00 00 * * 0.
@daily     	Run once a day, same as 00 00 * * *.
@hourly    	Run once an hour, same as 00 * * * *.

Lea también: 11 comandos para programar tareas cron en RHEL 7

Localización y comprobación de registros

Los registros del sistema se ubican (y rotan) dentro del directorio /var/log. Según el estándar de jerarquía del sistema de archivos de Linux, este directorio contiene varios archivos de registro, que se escriben en él o en un subdirectorio apropiado (como audit, httpd o samba). en la imagen siguiente) por los demonios correspondientes durante el funcionamiento del sistema:


ls /var/log

Otros registros interesantes son dmesg (contiene todos los mensajes del búfer de anillo del kernel), seguro (registra los intentos de conexión que requieren autenticación del usuario), mensajes (mensajes de todo el sistema) y wtmp (registros de todos los inicios y cierres de sesión de los usuarios).

Los registros son muy importantes porque le permiten vislumbrar lo que sucede en todo momento en su sistema y lo que sucedió en el pasado. Representan una herramienta invaluable para solucionar problemas y monitorear un servidor Linux y, por lo tanto, a menudo se usan con el comando tail -f para mostrar eventos, en tiempo real, a medida que ocurren y se registran en un registro.

Por ejemplo, si desea mostrar eventos relacionados con el kernel, escriba el siguiente comando:


tail -f /var/log/dmesg

Lo mismo si deseas ver el acceso a tu servidor web:


tail -f /var/log/httpd/access.log

Resumen

Si sabe cómo administrar paquetes de manera eficiente, programar tareas y dónde buscar información sobre el funcionamiento actual y pasado de su sistema, puede estar seguro de que no se encontrará con sorpresas muy a menudo. Espero que este artículo te haya ayudado a aprender o actualizar tus conocimientos sobre estas habilidades básicas.

No dude en escribirnos mediante el formulario de contacto a continuación si tiene alguna pregunta o comentario.