Weboldal keresés

RHCSA sorozat: Yum csomagkezelés, feladatok automatizálása Cron segítségével és megfigyelő rendszernaplók – 10. rész


Ebben a cikkben áttekintjük, hogyan telepíthet, frissíthet és távolíthat el csomagokat Red Hat Enterprise Linux 7 rendszerben. Kitérünk arra is, hogyan automatizálhatók a feladatok cron használatával, és befejezzük ezt az útmutatót, amely elmagyarázza, hogyan keresheti meg és értelmezheti a rendszernaplófájlokat, azzal a céllal, hogy megtanítsuk, hogy mindezek miért nélkülözhetetlenek minden rendszergazda számára.

Csomagok kezelése Yum

Egy csomag telepítéséhez az összes függőséggel együtt, amely még nincs telepítve, a következőket kell használnia:


yum -y install package_name(s)

Ahol a csomagnév(ek) legalább egy valódi csomagnevet jelent.

Például a httpd és a mlocate (ebben a sorrendben) telepítéséhez írja be.


yum -y install httpd mlocate

Megjegyzés: A fenti példában az y betű megkerüli a yum által a kért programok tényleges letöltése és telepítése előtt megjelenő megerősítő üzeneteket. Kihagyhatod, ha akarod.

Alapértelmezés szerint a yum az operációs rendszer architektúrájának megfelelő architektúrával telepíti a csomagot, kivéve, ha felülírja a csomag architektúra nevéhez fűzésével.

Például egy 64 bites rendszeren a yum install csomag a csomag x86_64 verzióját telepíti, míg a yum install package.x86 (ha elérhető) telepíti a 32 bites verziót.

Előfordulhat, hogy telepíteni szeretne egy csomagot, de nem tudja a pontos nevét. A Keresés az összesben vagy a Keresés opciók az aktuálisan engedélyezett tárolókban kereshetnek egy bizonyos kulcsszót a csomag nevében és/vagy annak leírásában is.

Például,


yum search log

megkeresi a telepített lerakatokban azokat a csomagokat, amelyek nevében és összefoglalójában szerepel a log szó, míg


yum search all log

ugyanazt a kulcsszót keresi a csomag leírásában és az url mezőben is.

Miután a keresés visszaad egy csomaglistát, érdemes lehet további információkat megjeleníteni néhányról a telepítés előtt. Ilyenkor hasznos lesz az információ lehetőség:


yum info logwatch

Rendszeresen ellenőrizheti a frissítéseket a következő paranccsal:


yum check-update

A fenti parancs visszaadja az összes telepített csomagot, amelyhez elérhető frissítés. Az alábbi képen látható példában csak az rhel-7-server-rpms esetén érhető el frissítés:

Ezután frissítheti a csomagot egyedül,


yum update rhel-7-server-rpms

Ha több csomag is frissíthető, a yum update mindegyiket egyszerre frissíti.

Most mi történik, ha ismeri egy végrehajtható fájl nevét, például a ps2pdfet, de nem tudja, melyik csomag biztosítja azt? A yum whatprovides „*/[végrehajtási fájl] ” segítségével megtudhatja:


yum whatprovides “*/ps2pdf”

Ha most egy csomag eltávolításáról van szó, azt a yum remove package segítségével teheti meg. Könnyű, mi? Ez azt mutatja, hogy a yum egy teljes és hatékony csomagkezelő.


yum remove httpd

Olvassa el még: 20 Yum parancs az RHEL 7 csomagkezelés kezelésére

Jó öreg Sima RPM

Az RPM (más néven RPM Package Manager vagy eredetileg RedHat Package Manager) használható csomagok telepítésére vagy frissítésére is, ha azok önálló formában érkeznek. .rpm csomagok.

Gyakran használják az -Uvh kapcsolóval, jelezve, hogy telepítenie kell a csomagot, ha még nincs jelen, vagy meg kell próbálnia frissíteni, ha telepítve van a (-U), így egy bőbeszédű kimenet (-v) és egy folyamatjelző (-h) hash-jelekkel a művelet végrehajtása közben. Például,


rpm -Uvh package.rpm

Az rpm másik tipikus használata a jelenleg telepített csomagok listájának elkészítése arpm -qa kóddal (az összes lekérdezés rövidítése):


rpm -qa

Olvassa el még: 20 RPM-es parancs a csomagok telepítéséhez az RHEL 7-ben

Feladatok ütemezése a Cron használatával

A Linux és más Unix-szerű operációs rendszerek tartalmaznak egy cron nevű eszközt, amely lehetővé teszi a feladatok (azaz parancsok vagy shell-szkriptek) időszakos futásának ütemezését. A Cron percenként ellenőrzi a /var/spool/cron könyvtárat, hogy vannak-e olyan fájlok, amelyek az /etc/passwd könyvtárban található fiókokról vannak elnevezve.

Parancsok végrehajtásakor minden kimenetet a rendszer a crontab tulajdonosának (vagy a /etc/crontabban a MAILTO környezeti változóban megadott felhasználónak) küld el., ha létezik).

A Crontab fájlok (amelyek a crontab -e beírásával és az Enter lenyomásával jönnek létre) a következő formátumúak:

Így, ha frissíteni akarjuk a helyi fájladatbázist (amelyet a locate használ a fájlok név vagy minta szerinti keresésére) a hónap minden második napján 2:15kor, akkor a következőket kell hozzáadnunk. crontab bejegyzés:


15 02 2 * * /bin/updatedb

A fenti crontab bejegyzés így szól: „Futtassa a /bin/updatedb-t a hónap második napján, az év minden hónapjában, a hét napjától függetlenül, hajnali 2:15-kor”. Ahogy azt már biztosan kitaláltad, a csillag szimbólumot helyettesítő karakterként használják.

Egy cron-feladat hozzáadása után láthatja, hogy egy root nevű fájl került hozzáadásra a /var/spool/cron mappába, ahogy azt korábban említettük. Ez a fájl felsorolja az összes feladatot, amelyet a crond démonnak futtatnia kell:


ls -l /var/spool/cron

A fenti képen az aktuális felhasználó crontabja megjeleníthető a cat /var/spool/cron/root vagy


crontab -l

Ha egy feladatot finomabban kell futtatnia (például naponta kétszer vagy havonta háromszor), a cron ebben is segíthet.

Például a /my/script futtatásához minden hónap 1-jén és 15-én, és bármilyen kimenetet elküldhet a /dev/null címre, akkor adjon hozzá két crontab bejegyzést az alábbiak szerint:


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

De annak érdekében, hogy a feladat könnyebben karbantartható legyen, mindkét bejegyzést egyesítheti egyben:


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

Az előző példát követve háromhavonta a hónap első napján 1:30-kor futtathatjuk az /my/other/script fájlt:


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

De ha egy bizonyos feladatot „x” percenként, óránként, naponként vagy hónaponként meg kell ismételnie, a megfelelő pozíciót eloszthatja a kívánt gyakorisággal. A következő crontab bejegyzésnek pontosan ugyanaz a jelentése, mint az előzőnek:


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

Vagy lehet, hogy egy bizonyos feladatot fix frekvencián vagy például a rendszerindítás után kell futtatnia. Az öt mező helyett a következő karakterláncok egyikét használhatja annak pontos idejére, amikor a munkát szeretné futtatni:


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

Olvassa el még: 11 parancs a Cron Jobs ütemezéséhez az RHEL 7-ben

A naplók felkutatása és ellenőrzése

A rendszernaplók a /var/log könyvtárban találhatók (és elforgatva). A Linux Filesystem Hierarchy Standard szerint ez a könyvtár különféle naplófájlokat tartalmaz, amelyek bele vagy egy megfelelő alkönyvtárba vannak írva (például audit, httpd vagy samba az alábbi képen) a megfelelő démonok által a rendszer működése közben:


ls /var/log

További érdekes naplók a dmesg (a kernelgyűrű pufferből származó összes üzenetet tartalmazza), a biztonságos (naplózza a felhasználói hitelesítést igénylő csatlakozási kísérleteket), az üzenetek (rendszerszintű üzenetek) és a wtmp (az összes felhasználói be- és kijelentkezés rekordja).

A naplók nagyon fontosak, mivel lehetővé teszik, hogy bepillantást nyerjen abba, hogy mi történik a rendszerében, és mi történt a múltban. Felbecsülhetetlen értékű eszközt jelentenek a Linux-szerverek hibaelhárításához és figyeléséhez, ezért gyakran használják a tail -f paranccsal az események valós időben történő megjelenítésére, ahogyan azok megtörténnek és rögzítésre kerülnek egy naplóba.

Ha például kernelhez kapcsolódó eseményeket szeretne megjeleníteni, írja be a következő parancsot:


tail -f /var/log/dmesg

Ugyanez történik, ha meg szeretné tekinteni a webszerverhez való hozzáférést:


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

Összegzés

Ha tudja, hogyan kell hatékonyan kezelni a csomagokat, ütemezni a feladatokat, és hol kereshet információt a rendszer jelenlegi és múltbeli működéséről, akkor biztos lehet benne, hogy nem éri túl gyakran meglepetés. Remélem, ez a cikk segített elsajátítani vagy felfrissíteni ismereteit ezekről az alapvető készségekről.

Ha bármilyen kérdése vagy észrevétele van, forduljon hozzánk bizalommal az alábbi kapcsolatfelvételi űrlap segítségével.