RHCSA sērija: Yum pakešu pārvaldība, uzdevumu automatizēšana ar Cron un uzraudzības sistēmas žurnāliem - 10. daļa


Šajā rakstā mēs pārskatīsim, kā instalēt, atjaunināt un noņemt paketes sistēmā Red Hat Enterprise Linux 7. Mēs arī aplūkosim, kā automatizēt uzdevumus, izmantojot cron, un pabeigsim šo rokasgrāmatu, kurā paskaidrots, kā atrast un interpretēt sistēmas žurnālu failus ar fokusu iemācīt jums, kāpēc šīs visas ir būtiskas prasmes katram sistēmas administratoram.

Iepakojumu pārvaldīšana, izmantojot Yum

Lai instalētu pakotni un visas tās atkarības, kas vēl nav instalētas, jūs izmantosiet:

# yum -y install package_name(s)

Ja paketes_nosaukums (-i) apzīmē vismaz vienu reālu pakas nosaukumu.

Piemēram, lai instalētu httpd un mlocate (šādā secībā), ierakstiet.

# yum -y install httpd mlocate

Piezīme. Iepriekš minētajā piemērā burts y apiet apstiprinājuma uzvednes, kuras yum uzrāda pirms pieprasīto programmu faktiskās lejupielādes un instalēšanas. Ja vēlaties, varat to atstāt malā.

Pēc noklusējuma yum instalēs pakotni ar arhitektūru, kas atbilst OS arhitektūrai, ja vien tas netiek ignorēts, pievienojot pakotnes arhitektūru tās nosaukumam.

Piemēram, 64 bitu sistēmā yum install pakotne instalēs pakotnes x86_64 versiju, savukārt yum install package.x86 (ja pieejama) instalēs 32 bitu pakotni.

Būs reizes, kad vēlaties instalēt pakotni, bet nezināt precīzu tās nosaukumu. Meklēt visās vai meklēšanas opcijās pašlaik iespējotajos krātuvēs var meklēt noteiktu atslēgvārdu attiecīgi paketes nosaukumā un/vai tā aprakstā.

Piemēram,

# yum search log

meklēs instalētajos krātuvēs pakas, kuru nosaukumos un kopsavilkumos ir vārds log, savukārt

# yum search all log

meklēs to pašu atslēgvārdu arī paketes aprakstā un URL laukos.

Kad meklēšana atgūs pakotņu sarakstu, pirms instalēšanas, iespējams, vēlēsities parādīt vairāk informācijas par dažiem no tiem. Toreiz noderēs informācijas opcija:

# yum info logwatch

Jūs varat regulāri pārbaudīt atjauninājumus, izmantojot šādu komandu:

# yum check-update

Iepriekš minētā komanda atgriezīs visas instalētās pakotnes, kurām ir pieejams atjauninājums. Zemāk redzamajā attēlā redzamajā piemērā tikai rhel-7-server-rpms ir pieejams atjauninājums:

Pēc tam jūs varat atjaunināt šo pakotni tikai ar

# yum update rhel-7-server-rpms

Ja ir vairākas paketes, kuras var atjaunināt, yum update atjauninās tās visas uzreiz.

Tagad, kas notiek, kad jūs zināt izpildāmā faila nosaukumu, piemēram, ps2pdf, bet nezināt, kura pakete to nodrošina? Ar yum var uzzināt, kas nodrošina “*/[izpildāmo]” :

# yum whatprovides “*/ps2pdf”

Tagad, kad runa ir par iepakojuma noņemšanu, to varat izdarīt, izmantojot paketi noņemt. Viegli, ja? Tas parāda, ka yum ir pilnīgs un spēcīgs pakotņu pārvaldnieks.

# yum remove httpd

Lasiet arī: 20 Yum komandas, lai pārvaldītu RHEL 7 pakotņu pārvaldību

Labs vecais līdzenums RPM

RPM (jeb RPM Package Manager vai sākotnēji RedHat Package Manager) var arī izmantot, lai instalētu vai atjauninātu paketes, ja tās ir atsevišķas .rpm paketes.

To bieži izmanto kopā ar karodziņiem -Uvh , lai norādītu, ka tai jāinstalē pakotne, ja tā vēl nav, vai mēģiniet atjaunināt, ja tā ir instalēta (-U) , tādējādi daudzfunkcionāla izeja (-v) un progresa josla ar hash atzīmēm (-h) , kamēr tiek veikta darbība. Piemēram,

# rpm -Uvh package.rpm

Vēl viens tipisks rpm izmantojums ir izveidot pašlaik instalēto pakotņu sarakstu ar kodu> rpm -qa (saīsinājums visiem vaicājumiem):

# rpm -qa

Lasiet arī: 20 RPM komandas pakotņu instalēšanai RHEL 7

Uzdevumu plānošana, izmantojot Cron

Linux un citas Unix līdzīgas operētājsistēmas ietver rīku, ko sauc par cron, kas ļauj ieplānot uzdevumu (t.i., komandu vai čaulas skriptu) darbību periodiski. Cron katru minūti/var/spool/cron direktorijā pārbauda failus, kas nosaukti pēc kontiem mapē/etc/passwd.

Izpildot komandas, jebkura izeja tiek nosūtīta crontab īpašniekam (vai lietotājam, kas norādīts vides mainīgajā MAILTO/etc/crontab, ja tāds pastāv).

Crontab failiem (kurus izveido, ierakstot crontab -e un nospiežot Enter) ir šāds formāts:

Tādējādi, ja mēs vēlamies atjaunināt vietējo failu datu bāzi (kuru locate izmanto, lai atrastu failus pēc nosaukuma vai modeļa) katru mēneša otro dienu pulksten 2:15, mums jāpievieno šāds crontab ieraksts:

15 02 2 * * /bin/updatedb

Iepriekš minētajā crontab ierakstā ir teikts: "Run/bin/updatedb mēneša otrajā dienā, katru gada mēnesi, neatkarīgi no nedēļas dienas, pulksten 2:15." Kā esmu pārliecināts, ka jūs jau uzminējāt, zvaigznītes simbols tiek izmantots kā aizstājējzīme.

Pēc cron darba pievienošanas jūs varat redzēt, ka fails ar nosaukumu root tika pievienots iekšpusē/var/spool/cron, kā mēs jau minējām iepriekš. Šajā failā ir uzskaitīti visi uzdevumi, kas jāveic Crond dēmonam:

# ls -l /var/spool/cron

Iepriekš redzamajā attēlā pašreizējā lietotāja kronšteinu var parādīt, izmantojot cat/var/spool/cron/root vai

# crontab -l

Ja jums ir nepieciešams izpildīt uzdevumu sīkāk (piemēram, divas reizes dienā vai trīs reizes mēnesī), cron var arī palīdzēt to izdarīt.

Piemēram, lai palaistu/my/script katra mēneša 1. un 15. datumā un nosūtītu jebkuru izvadi uz/dev/null, varat pievienot divus crontab ierakstus šādi:

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

Bet, lai uzdevumu būtu vieglāk uzturēt, abus ierakstus varat apvienot vienā:

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

Sekojot iepriekšējam piemēram, ik pēc trim mēnešiem mēs varam palaist/my/other/script 1:30 no rīta mēneša pirmajā dienā:

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

Bet, kad jums jāatkārto noteikts uzdevums ik pēc “x” minūtēm, stundām, dienām vai mēnešiem, pareizo pozīciju varat sadalīt pēc vēlamās frekvences. Šim crontab ierakstam ir tieši tāda pati nozīme kā iepriekšējam:

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

Vai varbūt jums, piemēram, jāpalaiž noteikts darbs ar fiksētu frekvenci vai pēc sistēmas palaišanas. Piecu lauku vietā varat izmantot vienu no šīm virknēm, lai norādītu precīzu laiku, kad vēlaties darboties:

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

Lasiet arī: 11 komandas, lai ieplānotu Crona darbus RHEL 7

Žurnālu atrašana un pārbaude

Sistēmas žurnāli atrodas (un pagriezti) direktorijā/var/log. Saskaņā ar Linux Filesystem Hierarchy Standard, šajā direktorijā ir dažādi žurnāla faili, kurus sistēmas darbības laikā attiecīgie dēmoni tajā vai attiecīgajā apakšdirektorijā (piemēram, audits, httpd vai samba ir attēlots zemāk esošajā attēlā) raksta:

# ls /var/log

Citi interesanti žurnāli ir dmesg (satur visus ziņojumus no kodola zvana bufera), drošie (reģistrē savienojuma mēģinājumus, kuriem nepieciešama lietotāja autentifikācija), ziņojumi (visas sistēmas ziņojumi) un wtmp (visu lietotāju pieteikšanās un atteikšanās ieraksti).

Žurnāli ir ļoti svarīgi, jo tie ļauj jums ieskatīties tajā, kas visu laiku notiek jūsu sistēmā un kas noticis pagātnē. Tie ir nenovērtējams rīks Linux servera problēmu novēršanai un novērošanai, un tāpēc tos bieži izmanto kopā ar komandu tail -f , lai reāllaikā parādītu notikumus, kad tie notiek un tiek ierakstīti žurnālā.

Piemēram, ja vēlaties parādīt ar kodolu saistītus notikumus, ierakstiet šādu komandu:

# tail -f /var/log/dmesg

Tas pats, ja vēlaties skatīt piekļuvi savam tīmekļa serverim:

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

Kopsavilkums

Ja jūs zināt, kā efektīvi pārvaldīt paketes, ieplānot uzdevumus un kur meklēt informāciju par pašreizējo un iepriekšējo sistēmas darbību, varat būt drošs, ka ļoti bieži nepārsteigsit pārsteigumus. Es ceru, ka šis raksts ir palīdzējis jums apgūt vai atsvaidzināt savas zināšanas par šīm pamatprasmēm.

Ja jums ir kādi jautājumi vai komentāri, nevilcinieties nomest mums līniju, izmantojot zemāk esošo saziņas veidlapu.