Sèrie RHCSA: gestió de paquets Yum, tasques automatitzades amb Cron i seguiment dels registres del sistema - Part 10


En aquest article revisarem com instal·lar, actualitzar i eliminar paquets a Red Hat Enterprise Linux 7. També parlarem de com automatitzar tasques mitjançant cron i acabarem aquesta guia explicant com localitzar i interpretar fitxers de registres del sistema amb el focus. d'ensenyar-vos per què totes aquestes habilitats són essencials per a tots els administradors del sistema.

Gestió de paquets via Yum

Per instal·lar un paquet juntament amb totes les seves dependències que encara no estiguin instal·lades, utilitzareu:

# yum -y install package_name(s)

On package_name(s) representen almenys un nom de paquet real.

Per exemple, per instal·lar httpd i mlocate (en aquest ordre), escriviu.

# yum -y install httpd mlocate

Nota: que la lletra y de l'exemple anterior passa per alt els missatges de confirmació que presenta yum abans de realitzar la descàrrega i instal·lació reals dels programes sol·licitats. Podeu deixar-ho fora si voleu.

Per defecte, yum instal·larà el paquet amb l'arquitectura que coincideixi amb l'arquitectura del sistema operatiu, tret que se substitueixi afegint l'arquitectura del paquet al seu nom.

Per exemple, en un sistema de 64 bits, el paquet yum install instal·larà la versió x86_64 del paquet, mentre que el paquet yum install package.x86 (si està disponible) instal·larà la de 32 bits.

Hi haurà moments en què vulgueu instal·lar un paquet però no coneixeu el seu nom exacte. Les opcions de cerca o de cerca poden cercar als dipòsits activats actualment una paraula clau determinada al nom del paquet i/o a la seva descripció, respectivament.

Per exemple,

# yum search log

buscarà als dipòsits instal·lats paquets amb la paraula registre als seus noms i resums, mentre que

# yum search all log

també buscarà la mateixa paraula clau a la descripció del paquet i als camps URL.

Un cop la cerca retorni una llista de paquets, és possible que vulgueu mostrar més informació sobre alguns d'ells abans d'instal·lar-los. És llavors quan l'opció d'informació serà útil:

# yum info logwatch

Podeu comprovar regularment si hi ha actualitzacions amb l'ordre següent:

# yum check-update

L'ordre anterior retornarà tots els paquets instal·lats per als quals hi ha una actualització disponible. A l'exemple que es mostra a la imatge següent, només rhel-7-server-rpms té una actualització disponible:

A continuació, podeu actualitzar aquest paquet sol amb,

# yum update rhel-7-server-rpms

Si hi ha diversos paquets que es poden actualitzar, yum update els actualitzarà tots alhora.

Ara què passa quan coneixeu el nom d'un executable, com ps2pdf, però no sabeu quin paquet el proporciona? Podeu esbrinar amb yum whatprovides \*/[executable]”:

# yum whatprovides “*/ps2pdf”

Ara, quan es tracta d'eliminar un paquet, podeu fer-ho amb yum remove package. Fàcil, eh? Això demostra que yum és un gestor de paquets complet i potent.

# yum remove httpd

Llegiu també: 20 ordres Yum per gestionar la gestió de paquets RHEL 7

Bona vella RPM plana

RPM (també conegut com Gestor de paquets RPM, o originalment Gestor de paquets RedHat) també es pot utilitzar per instal·lar o actualitzar paquets quan es presenten en forma de paquets autònoms .rpm.

Sovint s'utilitza amb les marques -Uvh per indicar que hauria d'instal·lar el paquet si encara no està present o intentar actualitzar-lo si està instal·lat (-U), produint una sortida detallada (-v) i una barra de progrés amb marques hash (-h) mentre s'està realitzant l'operació. Per exemple,

# rpm -Uvh package.rpm

Un altre ús típic de rpm és produir una llista dels paquets instal·lats actualment ambrpm -qa (abreviatura de query all):

# rpm -qa

Llegiu també: 20 ordres RPM per instal·lar paquets a RHEL 7

Programació de tasques amb Cron

Linux i altres sistemes operatius semblants a Unix inclouen una eina anomenada cron que us permet programar tasques (és a dir, ordres o scripts d'intèrpret d'ordres) per executar-se periòdicament. Cron comprova cada minut el directori /var/spool/cron per trobar fitxers que reben el nom dels comptes a /etc/passwd.

Quan s'executen ordres, qualsevol sortida s'envia per correu al propietari del crontab (o a l'usuari especificat a la variable d'entorn MAILTO a /etc/crontab, si existeix).

Els fitxers Crontab (que es creen escrivint crontab -e i prement Retorn) tenen el format següent:

Així, si volem actualitzar la base de dades local de fitxers (que s'utilitza per locate per trobar fitxers per nom o patró) cada segon dia del mes a les 2:15 a.m., hem d'afegir la següent entrada crontab:

15 02 2 * * /bin/updatedb

L'entrada de crontab anterior diu: \Executeu /bin/updatedb el segon dia del mes, tots els mesos de l'any, independentment del dia de la setmana, a les 2:15 a.m.. Com estic segur que ja heu endevinat , el símbol de l'estrella s'utilitza com a caràcter comodí.

Després d'afegir un treball cron, podeu veure que s'ha afegit un fitxer anomenat root dins /var/spool/cron, com hem esmentat anteriorment. Aquest fitxer enumera totes les tasques que hauria d'executar el dimoni crond:

# ls -l /var/spool/cron

A la imatge de dalt, el crontab de l'usuari actual es pot mostrar mitjançant cat /var/spool/cron/root o bé,

# crontab -l

Si necessiteu executar una tasca de manera més precisa (per exemple, dues vegades al dia o tres vegades al mes), cron també us pot ajudar a fer-ho.

Per exemple, per executar /my/script els dies 1 i 15 de cada mes i enviar qualsevol sortida a /dev/null, podeu afegir dues entrades crontab de la següent manera:

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

Però per tal que la tasca sigui més fàcil de mantenir, podeu combinar les dues entrades en una:

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

Seguint l'exemple anterior, podem executar /my/other/script a la 1:30 am del primer dia del mes cada tres mesos:

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

Però quan heu de repetir una tasca determinada cada \x minuts, hores, dies o mesos, podeu dividir la posició correcta per la freqüència desitjada. L'entrada crontab següent té exactament el mateix significat que l'anterior:

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

O potser necessiteu executar un treball determinat en una freqüència fixa o després d'arrencar el sistema, per exemple. Podeu utilitzar una de les següents cadenes en comptes dels cinc camps per indicar l'hora exacta en què voleu que s'executi el vostre treball:

@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 * * * *.

Llegiu també: 11 ordres per programar treballs de Cron a RHEL 7

Localització i comprovació de registres

Els registres del sistema es troben (i giren) dins del directori /var/log. Segons l'estàndard de jerarquia del sistema de fitxers de Linux, aquest directori conté fitxers de registre diversos, que s'escriuen en ell o en un subdirectori adequat (com ara auditoria, httpd o samba a la imatge següent) pels dimonis corresponents durant el funcionament del sistema:

# ls /var/log

Altres registres interessants són dmesg (conté tots els missatges del buffer d'anell del nucli), segur (registra els intents de connexió que requereixen autenticació de l'usuari), missatges (missatges a tot el sistema) i wtmp (registres de tots els inicis de sessió i tancaments d'usuari).

Els registres són molt importants perquè us permeten tenir una visió del que està passant en tot moment al vostre sistema i del que ha passat en el passat. Representen una eina inestimable per solucionar problemes i supervisar un servidor Linux, i per tant s'utilitzen sovint amb l'ordre tail -f per mostrar els esdeveniments, en temps real, tal com succeeixen i es registren en un registre.

Per exemple, si voleu mostrar esdeveniments relacionats amb el nucli, escriviu l'ordre següent:

# tail -f /var/log/dmesg

El mateix si voleu veure l'accés al vostre servidor web:

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

Resum

Si sabeu gestionar de manera eficient els paquets, programar tasques i on buscar informació sobre el funcionament actual i passat del vostre sistema, podeu estar segur que no trobareu sorpreses molt sovint. Espero que aquest article us hagi ajudat a aprendre o actualitzar els vostres coneixements sobre aquestes habilitats bàsiques.

No dubteu a enviar-nos una línia mitjançant el formulari de contacte següent si teniu cap pregunta o comentari.