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.