RHCSA-serie: Yum-pakketbeheer, taken automatiseren met Cron en systeemlogs bewaken – Deel 10

In dit artikel zullen we bespreken hoe u pakketten kunt installeren, bijwerken en verwijderen in Red Hat Enterprise Linux 7. We zullen ook behandelen hoe taken geautomatiseerd kunnen worden met behulp van cron, en zullen deze gids afsluiten door uit te leggen hoe systeemlogbestanden te vinden en interpreteren, met de focus om u te leren waarom al deze vaardigheden essentieel zijn voor elke systeembeheerder.

RHCSA: Yum Package Management, Cron Job Scheduling and Log Monitoring – Part 10

Het beheren van pakketten via Yum

Om een pakket samen met al zijn afhankelijkheden die nog niet geïnstalleerd zijn te installeren, gebruikt u:

# yum -y install package_name(s)

Waarbij pakketna(a)m(en) ten minste één echte pakketnaam vertegenwoordigen.

Bijvoorbeeld, om httpd en mlocate (in die volgorde) te installeren, typt u.

# yum -y install httpd mlocate

Opmerking: De letter y in het bovenstaande voorbeeld omzeilt de bevestigingsmeldingen die yum presenteert voordat de daadwerkelijke download en installatie van de gevraagde programma’s wordt uitgevoerd. U kunt deze weglaten als u dat wilt.

Standaard zal yum het pakket installeren met de architectuur die overeenkomt met de OS-architectuur, tenzij overschreven door de pakketarchitectuur toe te voegen aan de naam.

Bijvoorbeeld, op een 64-bits systeem, zal yum install pakket de x86_64 versie van het pak

Er zullen momenten zijn waarop je een pakket wilt installeren, maar de exacte naam niet weet. De zoek alles of zoek opties kunnen respectievelijk de momenteel ingeschakelde repositories doorzoeken op een bepaald trefwoord in de pakketnaam en/of in de beschrijving ervan.

Bijvoorbeeld,

# yum search log

zal de geïnstalleerde repositories doorzoeken op pakketten met het woord log in hun namen en samenvattingen, terwijl

# yum search all log

hetzelfde trefwoord zal zoeken in de pakketbeschrijving en url velden ook.

Zodra de zoekopdracht een lijst met pakketten retourneert, wilt u misschien meer informatie over sommige van hen weergeven voordat u ze installeert. Dat is wanneer de info optie van pas zal komen:

# yum info logwatch
Search Package Information

U kunt regelmatig controleren op updates met de volgende opdracht:

# yum check-update

De bovenstaande opdracht retourneert alle geïnstalleerde pakketten waarvoor een update beschikbaar is. In het voorbeeld dat wordt weergegeven in de afbeelding hieronder, heeft alleen rhel-7-server-rpms een update beschikbaar:

Check For Package Updates

Vervolgens kunt u dat pakket alleen bijwerken met,

# yum update rhel-7-server-rpms

Als er meerdere pakketten zijn die kunnen worden bijgewerkt, zal yum update ze allemaal tegelijk bijwerken.

Wat gebeurt er nu als je de naam van een uitvoerbaar bestand weet, zoals ps2pdf, maar niet weet welk pakket het levert? U kunt erachter komen met yum whatprovides “*/[uitvoerbaar]”:

# yum whatprovides “*/ps2pdf”
Find Package Belongs to Which Package

Als het gaat om het verwijderen van een pakket, kunt u dat doen met yum remove pakket. Makkelijk, toch? Dit laat zien dat yum een volledige en krachtige pakketbeheerder is.

# yum remove httpd

Lees ook: 20 Yum-opdrachten om RHEL 7 pakketbeheer te beheren

Goede oude standaard RPM

RPM (ook wel RPM Package Manager genoemd, of oorspronkelijk RedHat Package Manager) kan ook worden gebruikt om pakketten te installeren of bij te werken wanneer ze in de vorm van op zichzelf staande .rpm pakketten komen.

Het wordt vaak gebruikt met de -Uvh vlaggen om aan te geven dat het het pakket moet installeren als het nog niet aanwezig is of moet proberen het bij te werken als het is geïnstalleerd (-U), met een uitgebreide uitvoer (-v) en een voortgangsbalk met hash-tekens (-h) terwijl de bewerking wordt uitgevoerd. Bijvoorbeeld,

# rpm -Uvh package.rpm

Een ander typisch gebruik van rpm is om een lijst van momenteel geïnstalleerde pakketten te produceren met code>rpm -qa (afkorting voor query all):

# rpm -qa
Query All RPM Packages

Lees ook: 20 RPM-opdrachten om pakketten te installeren in RHEL 7

Taken plannen met Cron

Linux en andere op Unix lijkende besturingssystemen bevatten een tool genaamd cron waarmee u taken (d.w.z. opdrachten of shell-scripts) op regelmatige basis kunt plannen. Cron controleert elke minuut de /var/spool/cron map op bestanden die zijn vernoemd naar accounts in /etc/passwd.

Bij het uitvoeren van commando’s wordt alle uitvoer gemaild naar de eigenaar van de crontab (of naar de gebruiker gespecificeerd in de MAILTO omgevingsvariabele in de /etc/crontab, als die bestaat).

Crontab-bestanden (die worden aangemaakt door crontab -e te typen en op Enter te drukken) hebben het volgende formaat:

Crontab Entries

Dus, als we de lokale bestandsdatabase willen bijwerken (die wordt gebruikt door locate om bestanden op naam of patroon te vinden) elke tweede dag van de maand om 2:15 uur, moeten we de volgende crontab-invoer toevoegen:

15 02 2 * * /bin/updatedb

De bovenstaande crontab-invoer leest, “Voer /bin/updatedb uit op de tweede dag van de maand, elke maand van het jaar, ongeacht de dag van de week, om 2:15 uur”. Zoals je waarschijnlijk al geraden hebt, wordt het sterretje gebruikt als een wildcard-teken.

Na het toevoegen van een cron-taak, kun je zien dat er een bestand met de naam root is toegevoegd in /var/spool/cron, zoals we eerder hebben vermeld. Dat bestand bevat alle taken die de crond daemon moet uitvoeren:

# ls -l /var/spool/cron
Check All Cron Jobs

In de bovenstaande afbeelding kan de crontab van de huidige gebruiker worden weergegeven met behulp van cat /var/spool/cron/root of,

# crontab -l

Als je een taak op een meer gedetailleerde basis moet uitvoeren (bijvoorbeeld twee keer per dag of drie keer per maand), kan cron je daar ook bij helpen.

Om bijvoorbeeld /mijn/script uit te voeren op de 1e en 15e van elke maand en alle uitvoer naar /dev/null te sturen, kun je twee crontab-invoeren toevoegen zoals hieronder:

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

Maar om de taak gemakkelijker te onderhouden, kunt u beide items combineren:

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

Volgend op het vorige voorbeeld kunnen we /mijn/ander/script uitvoeren om 01:30 uur op de eerste dag van de maand, elke drie maanden:

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

Maar wanneer u een bepaalde taak om de “x” minuten, uren, dagen of maanden moet herhalen, kunt u de juiste positie delen door de gewenste frequentie. De volgende crontab-vermelding heeft exact dezelfde betekenis als de vorige:

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

Of misschien moet u een bepaalde taak met een vaste frequentie uitvoeren of nadat het systeem is opgestart, bijvoorbeeld. U kunt een van de volgende strings gebruiken in plaats van de vijf velden om aan te geven wanneer u wilt dat uw taak wordt uitgevoerd:

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

Lees ook: 11 Opdrachten om Cron-taken te plannen in RHEL 7

Logbestanden lokaliseren en controleren

Systeemlogs bevinden zich (en worden geroteerd) binnen de /var/log-directory. Volgens de Linux-bestandssysteemhiërarchiestandaard bevat deze directory diverse logbestanden, die tijdens systeemwerking worden geschreven naar deze directory of een passende subdirectory (zoals audit, httpd of samba in de onderstaande afbeelding) door de overeenkomstige daemons:

# ls /var/log
Linux Log Files Location

Andere interessante logs zijn dmesg (bevat alle berichten uit de kernel ring buffer), secure (logs verbindingspogingen die gebruikersauthenticatie vereisen), messages (systeembrede berichten) en wtmp (records van alle gebruikersaanmeldingen en afmeldingen).

Logs zijn erg belangrijk omdat ze je een glimp bieden van wat er te allen tijde in je systeem gebeurt, en wat er in het verleden is gebeurd. Ze vormen een onschatbaar instrument om problemen op te lossen en een Linux-server te monitoren, en worden daarom vaak gebruikt met het tail -f commando om gebeurtenissen in real-time weer te geven terwijl ze zich voordoen en worden opgenomen in een logbestand.

Als je bijvoorbeeld kernelgerelateerde gebeurtenissen wilt weergeven, typ dan het volgende commando:

# tail -f /var/log/dmesg

Hetzelfde geldt als je toegang tot je webserver wilt bekijken:

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

Samenvatting

Als je weet hoe je efficiënt pakketten beheert, taken plant, en waar je informatie kunt vinden over de huidige en vorige werking van je systeem, kun je er zeker van zijn dat je niet al te vaak voor verrassingen komt te staan. Ik hoop dat dit artikel je heeft geholpen om deze basisvaardigheden te leren of op te frissen.

Aarzel niet om ons een bericht te sturen via het onderstaande contactformulier als je vragen of opmerkingen hebt.

Source:
https://www.tecmint.com/yum-package-management-cron-job-scheduling-monitoring-linux-logs/