RHCSA-sarja: Yum-pakettien hallinta, tehtävien automatisointi Cronin avulla ja valvontajärjestelmän lokit - Osa 10


Tässä artikkelissa tarkastellaan pakettien asentamista, päivittämistä ja poistamista Red Hat Enterprise Linux 7:ssä. Käsittelemme myös tehtävien automatisointia cron-työkalun avulla ja lopetamme tämän oppaan, jossa selitetään järjestelmän lokitiedostojen paikantaminen ja tulkitseminen. Tarkoituksena on opettaa sinulle, miksi nämä kaikki ovat tärkeitä taitoja jokaiselle järjestelmänvalvojalle.

Pakettien hallinta Yumin kautta

Jos haluat asentaa paketin ja kaikki sen riippuvuudet, joita ei ole vielä asennettu, käytä:


yum -y install package_name(s)

Missä paketin_nimi(t) edustavat vähintään yhtä todellista paketin nimeä.

Jos haluat esimerkiksi asentaa httpd ja mlocate (tässä järjestyksessä), kirjoita.


yum -y install httpd mlocate

Huomaa: kirjain y yllä olevassa esimerkissä ohittaa vahvistuskehotteet, jotka yum esittää ennen pyydettyjen ohjelmien lataamista ja asentamista. Voit jättää sen pois, jos haluat.

Oletuksena yum asentaa paketin arkkitehtuurilla, joka vastaa käyttöjärjestelmän arkkitehtuuria, ellei sitä ohiteta lisäämällä paketin arkkitehtuuri sen nimeen.

Esimerkiksi 64-bittisessä järjestelmässä yum-asennuspaketti asentaa paketin x86_64-version, kun taas yum-asennuspaketti.x86 (jos saatavilla) asentaa 32-bittisen.

Joskus haluat asentaa paketin, mutta et tiedä sen tarkkaa nimeä. Hae kaikista- tai haku-vaihtoehdoilla voidaan etsiä tällä hetkellä käytössä olevista tietovarastoista tiettyä avainsanaa paketin nimessä ja/tai sen kuvauksessa.

Esimerkiksi,


yum search log

etsii asennetuista arkistoista paketteja, joiden nimissä ja yhteenvedoissa on sana log, kun taas


yum search all log

etsii samaa avainsanaa myös paketin kuvaus- ja url-kentistä.

Kun haku palauttaa pakettiluettelon, saatat haluta näyttää lisätietoja joistakin niistä ennen asennusta. Silloin tieto-vaihtoehto on hyödyllinen:


yum info logwatch

Voit tarkistaa päivitykset säännöllisesti seuraavalla komennolla:


yum check-update

Yllä oleva komento palauttaa kaikki asennetut paketit, joille on saatavilla päivitys. Alla olevassa kuvassa näkyvässä esimerkissä vain rhel-7-server-rpms on päivitys saatavilla:

Voit sitten päivittää paketin yksin


yum update rhel-7-server-rpms

Jos päivitettäviä paketteja on useita, yum update päivittää ne kaikki kerralla.

Mitä nyt tapahtuu, kun tiedät suoritettavan tiedoston nimen, kuten ps2pdf, mutta et tiedä, mikä paketti sen tarjoaa? Voit selvittää komennolla yum whatprovides “*/[executable]”:


yum whatprovides “*/ps2pdf”

Nyt kun tulee paketin poistaminen, voit tehdä sen yum remove package -toiminnolla. Helppoa, vai mitä? Tämä osoittaa, että yum on täydellinen ja tehokas paketinhallinta.


yum remove httpd

Lue myös: 20 Yum-komentoa RHEL 7 -paketin hallintaan

Vanha hyvä, tavallinen RPM

RPM:llä (alias RPM Package Manager tai alun perin RedHat Package Manager) voidaan myös asentaa tai päivittää paketteja, kun ne tulevat erillisinä. .rpm-paketteja.

Sitä käytetään usein -Uvh-lippujen kanssa osoittamaan, että sen pitäisi asentaa paketti, jos sitä ei vielä ole, tai yrittää päivittää se, jos se on asennettu (-U), mikä tuottaa monisanainen tulos (-v) ja edistymispalkki, jossa on hash-merkit (-h) toiminnon suorittamisen aikana. Esimerkiksi,


rpm -Uvh package.rpm

Toinen tyypillinen rpm käyttötapa on luoda luettelo tällä hetkellä asennetuista paketeista koodilla >rpm -qa (lyhenne sanoista query all):


rpm -qa

Lue myös: 20 RPM-komennot pakettien asentamiseksi RHEL 7:ssä

Tehtävien ajoittaminen Cronin avulla

Linux ja muut Unixin kaltaiset käyttöjärjestelmät sisältävät työkalun nimeltä cron, jonka avulla voit ajoittaa tehtäviä (eli komentoja tai komentosarjoja) suoritettavaksi säännöllisin väliajoin. Cron tarkistaa minuutin välein /var/spool/cron-hakemistosta tiedostot, jotka on nimetty tiedostossa /etc/passwd olevien tilien mukaan.

Kun komentoja suoritetaan, kaikki tulosteet lähetetään crontab:n omistajalle (tai käyttäjälle, joka on määritetty /etc/crontab-ympäristömuuttujassa MAILTO. vahva>, jos sellainen on olemassa).

Crontab-tiedostot (jotka luodaan kirjoittamalla crontab -e ja painamalla Enter) ovat seuraavassa muodossa:

Jos siis haluamme päivittää paikallisen tiedostotietokannan (jota locate käyttää tiedostojen etsimiseen nimen tai mallin mukaan) joka kuukauden toinen päivä klo 2.15, meidän on lisättävä crontab-merkintä:


15 02 2 * * /bin/updatedb

Yllä oleva crontab-merkintä kuuluu seuraavasti: "Suorita /bin/updatedb kuukauden toisena päivänä, vuoden jokaisena kuukautena, viikonpäivästä riippumatta, klo 2.15". Kuten olen varma, että jo arvasit, tähtimerkkiä käytetään jokerimerkkinä.

Kun olet lisännyt cron-työn, voit nähdä, että tiedosto nimeltä root on lisätty kohtaan /var/spool/cron, kuten mainitsimme aiemmin. Tiedostossa luetellaan kaikki tehtävät, jotka crond-daemonin tulee suorittaa:


ls -l /var/spool/cron

Yllä olevassa kuvassa nykyisen käyttäjän crontab voidaan näyttää joko käyttämällä cat /var/spool/cron/root tai


crontab -l

Jos sinun on suoritettava tehtävä yksityiskohtaisemmin (esimerkiksi kahdesti päivässä tai kolme kertaa kuukaudessa), cron voi myös auttaa sinua tekemään sen.

Jos esimerkiksi haluat suorittaa /my/script-tiedoston kunkin kuukauden 1. ja 15. päivänä ja lähettää tulosteen osoitteeseen /dev/null, voit lisää kaksi crontab-kohtaa seuraavasti:


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

Mutta jotta tehtävää olisi helpompi ylläpitää, voit yhdistää molemmat merkinnät yhdeksi:


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

Edellisen esimerkin mukaisesti voimme ajaa /my/other/script klo 01.30 kuukauden ensimmäisenä päivänä joka kolmas kuukausi:


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

Mutta kun sinun on toistettava tietty tehtävä ”x” minuutin, tunnin, päivän tai kuukauden välein, voit jakaa oikean paikan halutulla taajuudella. Seuraavalla crontab-merkinnällä on täsmälleen sama merkitys kuin edellisellä:


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

Tai ehkä sinun on suoritettava tietty työ tietyllä taajuudella tai esimerkiksi järjestelmän käynnistyksen jälkeen. Voit käyttää yhtä seuraavista merkkijonoista viiden kentän sijasta ilmoittaaksesi tarkan ajan, jolloin haluat työn suorittavan:


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

Lue myös: 11 komentoa Cronin työpaikkojen ajoittamiseen RHEL 7:ssä

Lokien paikantaminen ja tarkistaminen

Järjestelmälokit sijaitsevat (ja pyöritetään) /var/log-hakemistossa. Linux Filesystem Hierarchy Standardin mukaan tämä hakemisto sisältää sekalaisia lokitiedostoja, jotka kirjoitetaan siihen tai sopivaan alihakemistoon (kuten audit, httpd tai samba alla olevassa kuvassa) vastaavien demonien toimesta järjestelmän toiminnan aikana:


ls /var/log

Muita mielenkiintoisia lokeja ovat dmesg (sisältää kaikki viestit ytimen rengaspuskurista), suojattu (kirjaa yhteysyritykset, jotka vaativat käyttäjän todennusta), viestit (järjestelmänlaajuiset viestit) ja wtmp (tietueet kaikista käyttäjien sisään- ja uloskirjautumisista).

Lokit ovat erittäin tärkeitä, koska niiden avulla voit nähdä koko ajan, mitä järjestelmässäsi tapahtuu ja mitä on tapahtunut menneisyydessä. Ne edustavat korvaamatonta työkalua Linux-palvelimen vianmääritykseen ja valvontaan, ja siksi niitä käytetään usein tail -f -komennon kanssa näyttämään tapahtumia reaaliajassa, kun ne tapahtuvat ja kirjataan lokiin.

Jos esimerkiksi haluat näyttää ytimeen liittyviä tapahtumia, kirjoita seuraava komento:


tail -f /var/log/dmesg

Sama, jos haluat nähdä pääsyn verkkopalvelimellesi:


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

Yhteenveto

Jos osaat hallita paketteja tehokkaasti, ajoittaa tehtäviä ja mistä etsiä tietoa järjestelmäsi nykyisestä ja aiemmasta toiminnasta, voit olla varma, ettet kohtaa yllätyksiä kovin usein. Toivon, että tämä artikkeli on auttanut sinua oppimaan näitä perustaitoja koskevia tai päivittämään tietojasi.

Älä epäröi ottaa yhteyttä alla olevalla yhteydenottolomakkeella, jos sinulla on kysyttävää tai kommentteja.