RHCSA serija: Yum paketų valdymas, užduočių automatizavimas naudojant Cron ir stebėjimo sistemos žurnalus – 10 dalis


Šiame straipsnyje apžvelgsime, kaip įdiegti, atnaujinti ir pašalinti paketus naudojant Red Hat Enterprise Linux 7. Taip pat apžvelgsime, kaip automatizuoti užduotis naudojant cron, ir užbaigsime šį vadovą, paaiškindami, kaip rasti ir interpretuoti sistemos žurnalų failus, ir paaiškinsime, kodėl visa tai yra būtini kiekvieno sistemos administratoriaus įgūdžiai.

Paketų valdymas per Yum

Norėdami įdiegti paketą kartu su visomis jo priklausomybėmis, kurios dar neįdiegtos, naudosite:


yum -y install package_name(s)

Kur paketo_pavadinimas (-iai) reiškia bent vieną tikrąjį paketo pavadinimą.

Pavyzdžiui, norėdami įdiegti httpd ir mlocate (tokia tvarka), įveskite.


yum -y install httpd mlocate

Pastaba: kad raidė y anksčiau pateiktame pavyzdyje aplenkia patvirtinimo raginimus, kuriuos yum pateikia prieš faktiškai atsisiunčiant ir įdiegiant prašomas programas. Jei norite, galite jį palikti.

Pagal numatytuosius nustatymus yum įdiegs paketą, kurio architektūra atitinka OS architektūrą, nebent tai būtų nepaisoma pridėjus paketo architektūrą prie pavadinimo.

Pavyzdžiui, 64 bitų sistemoje yum diegimo paketas įdiegs x86_64 paketo versiją, o yum install package.x86 (jei yra) įdiegs 32 bitų.

Kartais norėsite įdiegti paketą, bet nežinote tikslaus jo pavadinimo. Parinktys Ieškoti visuose arba paieškos gali ieškoti šiuo metu įgalintose saugyklose tam tikro raktinio žodžio paketo pavadinime ir (arba) jo aprašyme.

Pavyzdžiui,


yum search log

įdiegtose saugyklose ieškos paketų, kurių pavadinimuose ir santraukose yra žodis log, tuo tarpu


yum search all log

taip pat ieškos to paties raktinio žodžio paketo aprašymo ir url laukuose.

Kai paieška pateikia paketų sąrašą, prieš diegdami galbūt norėsite parodyti daugiau informacijos apie kai kuriuos iš jų. Tada bus naudinga parinktis informacija:


yum info logwatch

Galite reguliariai tikrinti, ar nėra naujinimų, naudodami šią komandą:


yum check-update

Aukščiau pateikta komanda grąžins visus įdiegtus paketus, kurių naujinimas yra prieinamas. Toliau pateiktame paveikslėlyje pateiktame pavyzdyje naujinys pasiekiamas tik rhel-7-server-rpms:

Tada galite atnaujinti šį paketą atskirai su


yum update rhel-7-server-rpms

Jei yra keli paketai, kuriuos galima atnaujinti, yum update atnaujins visus iš karto.

Kas nutinka, kai žinote vykdomosios programos pavadinimą, pvz., ps2pdf, bet nežinote, kuris paketas jį teikia? Galite sužinoti naudodami yum whatprovides „*/[vykdomasis]“:


yum whatprovides “*/ps2pdf”

Dabar, kai reikia pašalinti paketą, tai galite padaryti naudodami yum Remove package. Lengva, a? Tai rodo, kad yum yra visapusiška ir galinga paketų tvarkyklė.


yum remove httpd

Taip pat skaitykite: 20 Yum komandų, skirtų tvarkyti RHEL 7 paketų valdymą

Senas geras paprastas RPM

RPM (dar žinomas kaip RPM Package Manager arba iš pradžių RedHat Package Manager) taip pat gali būti naudojamas paketams įdiegti arba atnaujinti, kai jie yra atskiri. .rpm paketus.

Jis dažnai naudojamas su vėliavėlėmis -Uvh, nurodant, kad jis turėtų įdiegti paketą, jei jo dar nėra, arba bandyti jį atnaujinti, jei jis įdiegtas (-U), sukuriant išsami išvestis (-v) ir eigos juosta su maišos ženklais (-h), kol operacija atliekama. Pavyzdžiui,


rpm -Uvh package.rpm

Kitas įprastas rpm panaudojimas yra šiuo metu įdiegtų paketų sąrašo sudarymas naudojant kodą >rpm -qa (užklausos visų santrumpa):


rpm -qa

Taip pat skaitykite: 20 aps./min komandos įdiegti paketus RHEL 7

Užduočių planavimas naudojant Cron

„Linux“ ir kitose „Unix“ tipo operacinėse sistemose yra įrankis, vadinamas cron, kuris leidžia suplanuoti užduotis (t. y. komandas arba apvalkalo scenarijus), kad jos būtų vykdomos periodiškai. „Cron“ kas minutę tikrina /var/spool/cron katalogą, ar nėra failų, pavadintų paskyromis, esančiomis /etc/passwd.

Vykdant komandas, bet kokia išvestis siunčiama crontab savininkui (arba vartotojui, nurodytam MAILTO aplinkos kintamajame /etc/crontab, jei toks yra).

Crontab failai (kurie sukurti įvedus crontab -e ir paspaudus Enter) yra tokio formato:

Taigi, jei norime atnaujinti vietinę failų duomenų bazę (kurią naudoja locate ieškant failų pagal pavadinimą ar šabloną) kas antrą mėnesio dieną 02:15, turime pridėti: crontab įrašas:


15 02 2 * * /bin/updatedb

Aukščiau pateiktame crontab įraše rašoma: „Paleisti /bin/updatedb antrą mėnesio dieną, kiekvieną metų mėnesį, neatsižvelgiant į savaitės dieną, 2:15 val.“. Kaip esu tikras, kad jau atspėjote, žvaigždės simbolis naudojamas kaip pakaitos simbolis.

Pridėję cron užduotį galite pamatyti, kad failas pavadinimu root buvo įtrauktas į /var/spool/cron, kaip minėjome anksčiau. Tame faile pateikiamos visos užduotys, kurias turėtų vykdyti crond demonas:


ls -l /var/spool/cron

Aukščiau pateiktame paveikslėlyje dabartinio naudotojo crontab gali būti rodomas naudojant cat /var/spool/cron/root arba


crontab -l

Jei užduotį reikia atlikti tiksliau (pavyzdžiui, du kartus per dieną arba tris kartus per mėnesį), cron taip pat gali padėti tai padaryti.

Pavyzdžiui, norėdami paleisti /mano/skriptą kiekvieno mėnesio 1 ir 15 dienomis ir bet kokią išvestį siųsti adresu /dev/null, galite pridėkite du crontab įrašus taip:


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

Bet kad užduotį būtų lengviau prižiūrėti, abu įrašus galite sujungti į vieną:


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

Vadovaudamiesi ankstesniu pavyzdžiu, galime paleisti /my/other/script 1:30 val. pirmą mėnesio dieną kas tris mėnesius:


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

Tačiau kai turite kartoti tam tikrą užduotį kas „x“ minutes, valandas, dienas ar mėnesius, galite padalyti tinkamą poziciją iš norimo dažnio. Šis crontab įrašas turi lygiai tokią pačią reikšmę kaip ir ankstesnis:


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

Arba, pavyzdžiui, reikia atlikti tam tikrą užduotį fiksuotu dažniu arba po sistemos paleidimo. Vietoj penkių laukų galite naudoti vieną iš šių eilučių, kad nurodytumėte tikslų laiką, kada norite vykdyti užduotį:


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

Taip pat skaitykite: 11 komandų suplanuoti Cron darbus RHEL 7

Žurnalų vietos nustatymas ir tikrinimas

Sistemos žurnalai yra (ir pasukami) kataloge /var/log. Pagal „Linux“ failų sistemos hierarchijos standartą, šiame kataloge yra įvairių žurnalo failų, kurie įrašyti į jį arba atitinkamame pakatalogiuose (pvz., audit, httpd arba samba toliau pateiktame paveikslėlyje) atitinkami demonai sistemos veikimo metu:


ls /var/log

Kiti įdomūs žurnalai yra dmesg (yra visi pranešimai iš branduolio žiedo buferio), saugūs (registruoja bandymus prisijungti, kuriems reikalingas vartotojo autentifikavimas), pranešimai (visos sistemos pranešimai) ir wtmp (visų vartotojų prisijungimų ir atsijungimų įrašai).

Žurnalai yra labai svarbūs, nes jie leidžia jums pamatyti, kas visą laiką vyksta jūsų sistemoje ir kas įvyko praeityje. Jie yra neįkainojamas įrankis, skirtas Linux serverio trikčių šalinimui ir stebėjimui, todėl dažnai naudojami kartu su komanda tail -f, kad būtų rodomi įvykiai realiuoju laiku, kai jie įvyksta ir įrašomi į žurnalą.

Pavyzdžiui, jei norite rodyti su branduoliu susijusius įvykius, įveskite šią komandą:


tail -f /var/log/dmesg

Tas pats, jei norite peržiūrėti prieigą prie savo žiniatinklio serverio:


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

Santrauka

Jei žinote, kaip efektyviai tvarkyti paketus, planuoti užduotis ir kur ieškoti informacijos apie dabartinį ir ankstesnį sistemos veikimą, galite būti tikri, kad netikėtumų tikrai nepatiksite labai dažnai. Tikiuosi, kad šis straipsnis padėjo jums išmokti arba atnaujinti žinias apie šiuos pagrindinius įgūdžius.

Jei turite klausimų ar komentarų, nedvejodami parašykite mums naudodami toliau pateiktą kontaktinę formą.