Serija RHCSA: Upravljanje paketov Yum, avtomatizacija nalog s sistemskimi dnevniki Cron in nadzor - 10. del


V tem članku bomo pregledali, kako namestiti, posodobiti in odstraniti pakete v Red Hat Enterprise Linux 7. Pokrili bomo tudi, kako avtomatizirati naloge s pomočjo cron, in končali bomo s tem vodnikom, kako najti in razlagati datoteke sistemskih dnevnikov s poudarkom naučiti vas, zakaj so vse to bistvene spretnosti za vsakega sistemskega skrbnika.

Upravljanje paketov prek Yum

Če želite namestiti paket skupaj z vsemi odvisnostmi, ki še niso nameščene, boste uporabili:

# yum -y install package_name(s)

Kjer ime (-na) paketa predstavlja vsaj eno pravo ime paketa.

Če želite na primer namestiti httpd in mlocate (v tem vrstnem redu), vnesite.

# yum -y install httpd mlocate

Opomba: črka y v zgornjem primeru zaobide potrditvene pozive, ki jih yum predstavi, preden izvede dejanski prenos in namestitev zahtevanih programov. Če želite, ga lahko izpustite.

Yum bo privzeto namestil paket z arhitekturo, ki se ujema z arhitekturo OS, razen če ga ne razveljavi tako, da svojemu imenu doda arhitekturo paketa.

Na primer, v 64-bitni sistem bo namestitveni paket yum namestil različico paketa x86_64, medtem ko bo yum install package.x86 (če je na voljo) namestil 32-bitni.

Včasih boste želeli namestiti paket, vendar ne veste njegovega natančnega imena. Išči vse ali možnosti iskanja lahko v trenutno omogočenih skladiščih poišče določeno ključno besedo v imenu paketa oziroma v njegovem opisu.

Na primer

# yum search log

bo v nameščenih repozitorijih iskal pakete z besedo log v njihovih imenih in povzetkih, medtem ko

# yum search all log

bo isto ključno besedo iskal tudi v opisu paketa in v poljih url.

Ko iskanje vrne seznam paketov, boste pred namestitvijo morda želeli prikazati nadaljnje informacije o nekaterih od njih. Takrat bo informacijska možnost prišla še kako prav:

# yum info logwatch

Redno lahko preverjate posodobitve z naslednjim ukazom:

# yum check-update

Zgornji ukaz vrne vse nameščene pakete, za katere je na voljo posodobitev. V primeru, prikazanem na spodnji sliki, je posodobitev na voljo samo za rhel-7-server-rpms:

Nato lahko paket posodobite sami,

# yum update rhel-7-server-rpms

Če je mogoče posodobiti več paketov, bo posodobitev yum posodobila vse hkrati.

Kaj se zgodi zdaj, ko poznate ime izvedljive datoteke, na primer ps2pdf, vendar ne veste, kateri paket jo vsebuje? Z yum lahko ugotovite, kaj zagotavlja\"*/[izvršljivo]" :

# yum whatprovides “*/ps2pdf”

Zdaj, ko gre za odstranjevanje paketa, lahko to storite s paketom yum remove. Preprosto, kaj? To dokazuje, da je yum popoln in zmogljiv upravitelj paketov.

# yum remove httpd

Preberite tudi: 20 Yum ukazov za upravljanje paketov RHEL 7

Dobri stari navadni RPM

RPM (aka RPM Package Manager ali prvotno RedHat Package Manager) se lahko uporablja tudi za namestitev ali posodobitev paketov, ko so v obliki samostojnih paketov .rpm .

Pogosto se uporablja z zastavicami -Uvh , da označi, da mora namestiti paket, če še ni prisoten, ali ga poskusiti posodobiti, če je nameščen (-U) , kar ustvarja podroben izhod (-v) in vrstica napredovanja z zgoščenkami (-h) med izvajanjem operacije. Na primer

# rpm -Uvh package.rpm

Druga tipična uporaba rpm je izdelava seznama trenutno nameščenih paketov s kodo> rpm -qa (okrajšava za query all):

# rpm -qa

Preberite tudi: 20 ukazov RPM za namestitev paketov v RHEL 7

Razporejanje nalog z uporabo Cron

Linux in drugi Unixu podobni operacijski sistemi vključujejo orodje, imenovano cron, ki omogoča redno izvajanje nalog (tj. Ukazov ali skriptov lupine). Cron vsako minuto v imeniku/var/spool/cron preveri datoteke, ki so poimenovane po računih v/etc/passwd.

Pri izvajanju ukazov se kateri koli izhod pošlje lastniku crontab (ali uporabniku, določenemu v spremenljivki okolja MAILTO v/etc/crontab, če ta obstaja).

Datoteke Crontab (ki jih ustvarite tako, da vnesete crontab -e in pritisnete Enter) imajo naslednjo obliko:

Če želimo torej posodobiti lokalno zbirko datotek (ki jo locate uporablja za iskanje datotek po imenu ali vzorcu) vsak drugi dan v mesecu ob 2:15, moramo dodati naslednji vnos v crontab:

15 02 2 * * /bin/updatedb

Zgornji vnos crontab se glasi:\"Run/bin/updatedb drugi dan v mesecu, vsak mesec v letu, ne glede na dan v tednu, ob 2:15 zjutraj." Kot sem prepričan, ste že uganili , simbol zvezde se uporablja kot nadomestni znak.

Po dodajanju opravila cron lahko vidite, da je bila datoteka z imenom root dodana znotraj/var/spool/cron, kot smo že omenili. V tej datoteki so navedene vse naloge, ki bi jih moral izvajati demon crond:

# ls -l /var/spool/cron

Na zgornji sliki je lahko trenutni uporabnikov crontab prikazan bodisi z uporabo cat/var/spool/cron/root ali,

# crontab -l

Če morate nalogo zagnati bolj natančno (na primer dvakrat na dan ali trikrat na mesec), vam lahko pri tem pomaga tudi cron.

Na primer, če želite zagnati/my/script 1. in 15. v mesecu in poslati kakršen koli izhod v/dev/null, lahko dodate dva vnosa crontab, kot sledi:

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

Da pa je nalogo lažje vzdrževati, lahko oba vnosa združite v enega:

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

Po prejšnjem primeru lahko vsake tri mesece prvi dan v mesecu zaženemo/my/other/script ob 1.30 zjutraj:

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

Ko pa morate določeno nalogo ponoviti vsakih\"x" minut, ur, dni ali mesecev, lahko pravi položaj razdelite na želeno frekvenco. Naslednji vnos v crontabu ima popolnoma enak pomen kot prejšnji:

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

Ali pa morate na primer določeno opravilo izvesti na določeni frekvenci ali po zagonu sistema. Namesto petih polj lahko uporabite enega od naslednjih nizov, da navedete točen čas, ko želite, da se vaše delo izvaja:

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

Preberite tudi: 11 ukazov za razporejanje opravil Cron v RHEL 7

Iskanje in preverjanje dnevnikov

Sistemski dnevniki se nahajajo (in obračajo) znotraj imenika/var/log. V skladu s standardom hierarhije datotek Linux Filesystem ta imenik vsebuje različne dnevniške datoteke, ki so mu med delovanjem sistema zapisane v ustrezen podimenik (kot je revizija, httpd ali samba na spodnji sliki):

# ls /var/log

Drugi zanimivi dnevniki so dmesg (vsebuje vsa sporočila iz jedrskega medpomnilnika jedra), varno (poskusi povezave dnevnikov, ki zahtevajo preverjanje pristnosti uporabnika), sporočila (celotna sistemska sporočila) in wtmp (zapisi vseh uporabniških prijav in odjav).

Dnevniki so zelo pomembni, saj vam omogočajo vpogled v to, kaj se ves čas dogaja v vašem sistemu, in kaj se je zgodilo v preteklosti. Predstavljajo neprecenljivo orodje za odpravljanje težav in spremljanje Linux strežnika, zato se pogosto uporabljajo z ukazom tail -f za prikaz dogodkov v realnem času, ko se zgodijo in zabeležijo v dnevnik.

Če želite na primer prikazati dogodke, povezane z jedrom, vnesite naslednji ukaz:

# tail -f /var/log/dmesg

Enako, če si želite ogledati dostop do spletnega strežnika:

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

Povzetek

Če veste, kako učinkovito upravljati pakete, razporejati naloge in kje iskati informacije o trenutnem in preteklem delovanju vašega sistema, ste prepričani, da ne boste prav pogosto naleteli na presenečenja. Upam, da vam je ta članek pomagal pri učenju ali osvežitvi znanja o teh osnovnih veščinah.

Če imate kakršna koli vprašanja ali komentarje, nam pošljite vrstico s pomočjo spodnjega kontaktnega obrazca.