Serija RHCSA: Upravljanje Yum paketima, automatizacija zadataka s Cronom i zapisnici sustava za nadzor - 10. dio


U ovom ćemo članku pregledati kako instalirati, ažurirati i ukloniti pakete u Red Hat Enterprise Linux 7. Također ćemo obraditi kako automatizirati zadatke koristeći cron, i završit ćemo ovaj vodič objašnjavajući kako locirati i protumačiti datoteke zapisnika sustava s fokusom na to da vas naučimo zašto su sve ove vještine ključne za svakog administratora sustava.

Upravljanje paketima putem Yuma

Da biste instalirali paket zajedno sa svim njegovim ovisnostima koje još nisu instalirane, upotrijebit ćete:


yum -y install package_name(s)

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

Na primjer, da biste instalirali httpd i mlocate (tim redoslijedom), upišite.


yum -y install httpd mlocate

Napomena: Slovo y u gornjem primjeru zaobilazi upite za potvrdu koje yum prikazuje prije izvođenja stvarnog preuzimanja i instalacije traženih programa. Možete ga izostaviti ako želite.

Prema zadanim postavkama, yum će instalirati paket s arhitekturom koja odgovara arhitekturi OS-a, osim ako se ne poništi dodavanjem arhitekture paketa njegovom nazivu.

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

Bit će trenutaka kada želite instalirati paket, ali ne znate njegov toč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.

Na primjer,


yum search log

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


yum search all log

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

Nakon što pretraga vrati popis paketa, možda ćete htjeti prikazati dodatne informacije o nekim od njih prije instaliranja. Tada će vam dobro doći opcija info:


yum info logwatch

Možete redovito provjeravati ažuriranja pomoću sljedeće naredbe:


yum check-update

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

Tada možete sami ažurirati taj paket s,


yum update rhel-7-server-rpms

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

Što se sada događa kada znate naziv izvršne datoteke, kao što je ps2pdf, ali ne znate koji paket to nudi? Možete saznati pomoću yum whatprovides “*/[executable] ”:


yum whatprovides “*/ps2pdf”

Sada, kada je riječ o uklanjanju paketa, to možete učiniti s yum remove package. Lako, ha? Ovo pokazuje da je yum potpun i moćan upravitelj paketa.


yum remove httpd

Pročitajte također: 20 Yum naredbi za upravljanje upravljanjem RHEL 7 paketima

Dobri stari obični RPM

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

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


rpm -Uvh package.rpm

Još jedna tipična upotreba rpm je stvaranje popisa trenutno instaliranih paketa s kodom>rpm -qa (skraćenica od query all):


rpm -qa

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

Zakazivanje zadataka pomoću Crona

Linux i drugi operativni sustavi slični Unixu uključuju alat pod nazivom cron koji vam omogućuje da rasporedite zadatke (tj. naredbe ili skripte ljuske) za povremeno izvođenje. Cron svake minute provjerava direktorij /var/spool/cron za datoteke koje su nazvane po računima u /etc/passwd.

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

Crontab datoteke (koje se stvaraju 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 prema nazivu ili uzorku) svakog drugog dana u mjesecu u 2:15 ujutro, moramo dodati sljedeće crontab unos:


15 02 2 * * /bin/updatedb

Gornji crontab unos glasi: “Pokreni /bin/updatedb drugog dana u mjesecu, svakog mjeseca u godini, bez obzira na dan u tjednu, u 2:15 ujutro”. Kao što ste već pogodili, simbol zvjezdice koristi se 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. Ta datoteka navodi sve zadatke koje crond demon treba pokrenuti:


ls -l /var/spool/cron

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


crontab -l

Ako trebate pokrenuti zadatak na detaljnijoj osnovi (na primjer, dva puta dnevno ili tri puta svaki mjesec), 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 u /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 spojiti 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 ponoviti određeni zadatak svakih “x ” minuta, sati, dana ili mjeseci, možete podijeliti pravi položaj sa željenom učestalošću. Sljedeći crontab unos 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 podizanja sustava, na primjer. Možete upotrijebiti jedan od sljedećih nizova umjesto pet polja kako biste označili toč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 planiranje Cron poslova u RHEL 7

Lociranje i provjera zapisa

Dnevnici sustava nalaze se (i rotiraju) unutar direktorija /var/log. Prema standardu hijerarhije Linux datotečnog sustava, ovaj direktorij sadrži razne datoteke dnevnika koje se zapisuju u njega ili odgovarajući poddirektorij (kao što je audit, httpd ili samba na slici ispod) od strane odgovarajućih demona tijekom rada sustava:


ls /var/log

Ostali zanimljivi dnevnici su dmesg (sadrži sve poruke iz međuspremnika prstena jezgre), secure (bilježi pokušaje povezivanja koji zahtijevaju autentifikaciju korisnika), messages (poruke na razini cijelog sustava) i wtmp (zapisi svih prijava i odjava korisnika).

Dnevnici su vrlo važni jer vam omogućuju da imate uvid u ono što se u svakom trenutku događa u vašem sustavu i što se dogodilo u prošlosti. Predstavljaju neprocjenjiv alat za rješavanje problema i nadzor Linux poslužitelja, te se stoga često koriste s tail -f naredbom za prikaz događaja, u stvarnom vremenu, kako se događaju i bilježe u dnevniku.

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


tail -f /var/log/dmesg

Isto ako želite vidjeti pristup svom web poslužitelju:


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

Sažetak

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

Ne ustručavajte se javiti nam se putem obrasca za kontakt u nastavku ako imate pitanja ili komentara.