Serija RHCSA: Upravljanje Yum paketima, automatizacija zadataka sa Cron-om i evidencije sistema za praćenje - 10. dio


U ovom članku ćemo pregledati kako instalirati, ažurirati i ukloniti pakete u Red Hat Enterprise Linux 7. Također ćemo pokriti kako automatizirati zadatke koristeći cron, a završit ćemo ovaj vodič objašnjavajući kako locirati i interpretirati fajlove sistemskih dnevnika sa fokusom da vas naučimo zašto su sve ovo ključne vještine za svakog administratora sistema.

Upravljanje paketima putem Yum

Da biste instalirali paket zajedno sa svim njegovim ovisnostima koje već nisu instalirane, koristit ćete:


yum -y install package_name(s)

Gdje package_name(s) predstavljaju barem jedan pravi naziv paketa.

Na primjer, da instalirate httpd i mlocate (tim redoslijedom), otkucajte.


yum -y install httpd mlocate

Napomena: Da slovo y u primjeru iznad zaobilazi upite za potvrdu koje yum prikazuje prije izvršenja stvarnog preuzimanja i instalacije traženih programa. Možete ga izostaviti ako želite.

Podrazumevano, yum će instalirati paket sa arhitekturom koja odgovara arhitekturi OS-a, osim ako se ne poništi dodavanjem arhitekture paketa njegovom imenu.

Na primjer, na 64-bitnom sistemu, yum install paket će instalirati x86_64 verziju paketa, dok yum install package.x86 (ako je dostupan) će instalirati 32-bitni.

Biće trenutaka kada želite da instalirate paket, ali ne znate njegov tačan naziv. Opcije pretraži sve ili pretraži mogu pretraživati trenutno omogućena spremišta za određenu ključnu riječ u nazivu paketa i/ili u njegovom opisu, respektivno.

Na primjer,


yum search log

će pretražiti instalirana spremišta za pakete sa riječju log u njihovim imenima i sažetcima, dok


yum search all log

će tražiti istu ključnu riječ u opisu paketa i poljima url.

Kada pretraga vrati listu paketa, možda ćete želeti da prikažete dodatne informacije o nekim od njih pre instaliranja. Tada će vam dobro doći opcija info:


yum info logwatch

Redovno možete provjeravati ažuriranja pomoću sljedeće naredbe:


yum check-update

Gornja naredba će vratiti sve instalirane pakete za koje je dostupno ažuriranje. U primjeru prikazanom na slici ispod, samo rhel-7-server-rpms ima dostupno ažuriranje:

Zatim možete sami ažurirati taj paket sa,


yum update rhel-7-server-rpms

Ako postoji nekoliko paketa koji se mogu ažurirati, yum update će ažurirati sve odjednom.

Šta se dešava kada znate ime izvršne datoteke, kao što je ps2pdf, ali ne znate koji paket to obezbeđuje? Možete saznati pomoću yum šta pruža “*/[executable] ”:


yum whatprovides “*/ps2pdf”

Sada, kada je u pitanju uklanjanje paketa, to možete učiniti pomoću yum remove package. Polako, ha? Ovo pokazuje da je yum kompletan i moćan menadžer paketa.


yum remove httpd

Pročitajte također: 20 Yum komandi za upravljanje RHEL 7 paketom

Dobri stari obični broj obrtaja

RPM (aka RPM Package Manager, ili originalno RedHat Package Manager) se također može koristiti za instaliranje ili ažuriranje paketa kada dolaze u obliku samostalnog .rpm paketi.

Često se koristi sa zastavicama -Uvh da naznači da treba instalirati paket ako već nije prisutan ili pokušati da ga ažurira ako je instaliran (-U), stvarajući opširni izlaz (-v) i traka napretka sa heš oznakama (-h) dok se operacija izvodi. Na primjer,


rpm -Uvh package.rpm

Još jedna tipična upotreba rpm je da se napravi lista trenutno instaliranih paketa sa kodom>rpm -qa (skraćeno od query all):


rpm -qa

Pročitajte također: 20 RPM naredbi za instaliranje paketa u RHEL 7

Planiranje zadataka koristeći Cron

Linux i drugi operativni sistemi slični Unixu uključuju alat pod nazivom cron koji vam omogućava da zakažete zadatke (tj. komande ili shell skripte) da se izvršavaju na periodičnoj osnovi. Cron svake minute provjerava direktorij /var/spool/cron za fajlove koji su nazvani prema nalozima u /etc/passwd.

Prilikom izvršavanja naredbi, svaki izlaz se šalje poštom vlasniku crontab (ili korisniku navedenom u varijabli okruženja MAILTO u /etc/crontab, ako postoji).

Crontab datoteke (koje se kreiraju upisivanjem crontab -e i pritiskom na Enter) imaju sljedeći format:

Stoga, ako želimo ažurirati lokalnu bazu podataka datoteka (koju koristi locate za pronalaženje datoteka po imenu ili uzorku) svakog drugog dana u mjesecu u 2:15 ujutro, moramo dodati sljedeće crontab unos:


15 02 2 * * /bin/updatedb

Gornji unos u crontab glasi: “Pokreni /bin/updatedb drugog dana u mjesecu, svakog mjeseca u godini, bez obzira na dan u sedmici, u 2:15 ujutro”. Kao što sam siguran da ste već pogodili, simbol zvijezde se koristi kao zamjenski znak.

Nakon dodavanja cron posla, možete vidjeti da je datoteka pod nazivom root dodana unutar /var/spool/cron, kao što smo ranije spomenuli. Taj fajl navodi sve zadatke koje bi crond demon trebao pokrenuti:


ls -l /var/spool/cron

Na gornjoj slici, crontab trenutnog korisnika može se prikazati bilo pomoću cat /var/spool/cron/root ili,


crontab -l

Ako trebate da pokrenete zadatak na detaljnijoj osnovi (na primjer, dva puta dnevno ili tri puta mjesečno), cron vam također može pomoći u tome.

Na primjer, da pokrenete /my/script 1. i 15. svakog mjeseca i pošaljete bilo koji izlaz na /dev/null, možete dodajte dva crontab unosa kako slijedi:


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

Ali kako bi zadatak bio lakši za održavanje, možete kombinirati oba unosa u jedan:


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

Slijedeći prethodni primjer, možemo pokrenuti /my/other/script u 1:30 ujutro prvog dana u mjesecu svaka tri mjeseca:


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

Ali kada morate da ponavljate određeni zadatak svakih “x” minuta, sati, dana ili mjeseci, možete podijeliti pravu poziciju željenom frekvencijom. Sljedeći unos crontab ima potpuno isto značenje kao i prethodni:


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

Ili možda trebate pokrenuti određeni posao na fiksnoj frekvenciji ili nakon pokretanja sistema, na primjer. Možete koristiti jedan od sljedećih nizova umjesto pet polja da naznačite tačno vrijeme kada želite da se vaš posao pokrene:


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

Pročitajte također: 11 naredbi za zakazivanje Cron poslova u RHEL 7

Lociranje i provjera dnevnika

Sistemski dnevnici se nalaze (i rotiraju) unutar /var/log direktorija. U skladu sa standardom hijerarhije sistema datoteka Linuxa, ovaj direktorij sadrži razne datoteke dnevnika, koje su upisane u njega ili odgovarajući poddirektorij (kao što je audit, httpd ili samba na slici ispod) od strane odgovarajućih demona tokom rada sistema:


ls /var/log

Ostali zanimljivi logovi su dmesg (sadrži sve poruke iz bafera prstena jezgra), secure (zapisuje pokušaje povezivanja koji zahtijevaju autentifikaciju korisnika), poruke (poruke na nivou cijelog sistema) i wtmp (zapise svih korisničkih prijava i odjava).

Dnevnici su veoma važni jer vam omogućavaju da imate uvid u ono što se u svakom trenutku dešava u vašem sistemu i šta se dešavalo u prošlosti. Oni predstavljaju neprocjenjiv alat za rješavanje problema i nadgledanje Linux servera, i stoga se često koriste sa tail -f komandom za prikaz događaja, u realnom vremenu, kako se događaju i zapisuju u dnevnik.

Na primjer, ako želite prikazati događaje povezane s kernelom, upišite sljedeću naredbu:


tail -f /var/log/dmesg

Isto ako želite da vidite pristup vašem web serveru:


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

Sažetak

Ako znate kako efikasno upravljati paketima, planirati zadatke i gdje tražiti informacije o trenutnom i prošlom radu vašeg sistema, možete biti sigurni da nećete često nailaziti na iznenađenja. Nadam se da vam je ovaj članak pomogao da naučite ili osvježite svoje znanje o ovim osnovnim vještinama.

Ne ustručavajte se da nam se javite putem kontakt forme ispod ako imate bilo kakvih pitanja ili komentara.