Vyhledávání na webu

Řada RHCSA: Správa balíčků Yum, automatizace úloh pomocí cronu a protokoly monitorovacího systému – část 10


V tomto článku se podíváme na to, jak nainstalovat, aktualizovat a odebrat balíčky v Red Hat Enterprise Linux 7. Probereme také, jak automatizovat úlohy pomocí cronu, a dokončíme tuto příručku vysvětlující, jak najít a interpretovat soubory systémových protokolů, s cílem naučit vás, proč jsou všechny tyto dovednosti nezbytné pro každého správce systému.

Správa balíčků přes Yum

Chcete-li nainstalovat balíček spolu se všemi jeho závislostmi, které ještě nejsou nainstalovány, použijte:


yum -y install package_name(s)

Kde package_name(s) představují alespoň jeden skutečný název balíčku.

Chcete-li například nainstalovat httpd a mlocate (v tomto pořadí), zadejte.


yum -y install httpd mlocate

Poznámka: Písmeno y ve výše uvedeném příkladu obchází potvrzovací výzvy, které yum představuje před provedením skutečného stažení a instalace požadovaných programů. Pokud chcete, můžete to vynechat.

Ve výchozím nastavení yum nainstaluje balíček s architekturou, která odpovídá architektuře OS, pokud není přepsáno připojením architektury balíčku k jeho názvu.

Například v 64bitovém systému nainstaluje yum instalační balíček verzi balíčku x86_64, zatímco yum instalační balíček.x86 (je-li k dispozici) nainstaluje 32bitový.

Někdy se stane, že budete chtít nainstalovat balíček, ale neznáte jeho přesný název. Možnosti prohledat vše nebo vyhledat mohou vyhledávat v aktuálně povolených úložištích určité klíčové slovo v názvu balíčku a/nebo také v jeho popisu.

Například,


yum search log

bude hledat v nainstalovaných úložištích balíčky se slovem log v jejich jménech a souhrnech, zatímco


yum search all log

bude hledat stejné klíčové slovo v poli popisu balíčku a url.

Jakmile vyhledávání vrátí seznam balíčků, možná budete chtít před instalací zobrazit další informace o některých z nich. Tehdy se vám bude hodit možnost informace:


yum info logwatch

Aktualizace můžete pravidelně kontrolovat pomocí následujícího příkazu:


yum check-update

Výše uvedený příkaz vrátí všechny nainstalované balíčky, pro které je dostupná aktualizace. V příkladu na obrázku níže je k dispozici aktualizace pouze pro rhel-7-server-rpms:

Tento balíček pak můžete aktualizovat samostatně pomocí


yum update rhel-7-server-rpms

Pokud existuje několik balíčků, které lze aktualizovat, yum update aktualizuje všechny najednou.

Co se stane, když znáte název spustitelného souboru, například ps2pdf, ale nevíte, který balíček jej poskytuje? Můžete to zjistit pomocí yum whatprovides „*/[executable] ”:


yum whatprovides “*/ps2pdf”

Nyní, když dojde na odstranění balíčku, můžete tak učinit pomocí yum remove package. Snadno, co? To ukazuje, že yum je kompletní a výkonný správce balíčků.


yum remove httpd

Čtěte také: 20 Yum příkazů pro správu RHEL 7 Package Management

Staré dobré obyčejné RPM

RPM (neboli RPM Package Manager nebo původně RedHat Package Manager) lze také použít k instalaci nebo aktualizaci balíčků, pokud jsou k dispozici jako samostatné .rpm balíčky.

Často se používá s příznaky -Uvh k označení, že by měl nainstalovat balíček, pokud ještě není přítomen, nebo se pokusit jej aktualizovat, pokud je nainstalován (-U), čímž se vytvoří podrobný výstup (-v) a ukazatel průběhu s křížkem (-h) během provádění operace. Například,


rpm -Uvh package.rpm

Dalším typickým použitím rpm je vytvoření seznamu aktuálně nainstalovaných balíčků s kódem>rpm -qa (zkratka pro dotaz all):


rpm -qa

Čtěte také: Příkazy 20 RPM pro instalaci balíčků v RHEL 7

Plánování úloh pomocí Cron

Linux a další operační systémy podobné Unixu obsahují nástroj zvaný cron, který vám umožňuje naplánovat pravidelné spouštění úloh (tj. příkazů nebo skriptů shellu). Cron každou minutu kontroluje adresář /var/spool/cron na soubory, které jsou pojmenovány podle účtů v /etc/passwd.

Při provádění příkazů je jakýkoli výstup zaslán e-mailem vlastníkovi crontab (nebo uživateli zadanému v proměnné prostředí MAILTO v /etc/crontab, pokud existuje).

Soubory Crontab (které se vytvářejí zadáním crontab -e a stisknutím Enter) mají následující formát:

Pokud tedy chceme aktualizovat místní databázi souborů (kterou locate používá k vyhledání souborů podle názvu nebo vzoru) každý druhý den v měsíci v 2:15, musíme přidat následující Záznam crontab:


15 02 2 * * /bin/updatedb

Výše uvedený záznam crontab zní: „Spusťte /bin/updatedb druhý den v měsíci, každý měsíc v roce, bez ohledu na den v týdnu, ve 2:15 “. Jak už jste jistě uhodli, symbol hvězdy se používá jako zástupný znak.

Po přidání úlohy cron můžete vidět, že soubor s názvem root byl přidán do /var/spool/cron, jak jsme zmínili dříve. Tento soubor obsahuje seznam všech úloh, které by měl démon crond spustit:


ls -l /var/spool/cron

Na obrázku výše lze crontab aktuálního uživatele zobrazit buď pomocí cat /var/spool/cron/root nebo,


crontab -l

Pokud potřebujete spouštět úlohu na jemnější bázi (například dvakrát denně nebo třikrát každý měsíc), může vám s tím pomoci i cron.

Chcete-li například spustit /my/script 1. a 15. každého měsíce a odeslat jakýkoli výstup na adresu /dev/null, můžete přidejte dvě položky crontab takto:


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

Ale aby byla údržba úkolu snazší, můžete oba záznamy spojit do jednoho:


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

Podle předchozího příkladu můžeme spustit /my/other/script v 1:30 ráno prvního dne v měsíci každé tři měsíce:


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

Ale když musíte opakovat určitý úkol každých „x“ minut, hodin, dnů nebo měsíců, můžete správnou pozici rozdělit požadovanou frekvencí. Následující záznam crontab má přesně stejný význam jako předchozí:


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

Nebo možná potřebujete spouštět určitou úlohu na pevné frekvenci nebo například po zavedení systému. K označení přesného času, kdy chcete, aby byla vaše úloha spuštěna, můžete místo pěti polí použít jeden z následujících řetězců:


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

Čtěte také: 11 příkazů pro plánování úloh Cron v RHEL 7

Vyhledání a kontrola protokolů

Systémové protokoly jsou umístěny (a rotovány) v adresáři /var/log. Podle standardu Linux Filesystem Hierarchy Standard tento adresář obsahuje různé soubory protokolu, které se zapisují do něj nebo do příslušného podadresáře (jako je audit, httpd nebo samba na obrázku níže) odpovídajícími démony během provozu systému:


ls /var/log

Dalšími zajímavými logy jsou dmesg (obsahuje všechny zprávy z kernel ring buffer), secure (zaznamenává pokusy o připojení, které vyžadují ověření uživatele), zprávy (celosystémové zprávy) a wtmp (záznamy všech přihlášení a odhlášení uživatelů).

Protokoly jsou velmi důležité v tom, že vám umožňují nahlédnout do toho, co se ve vašem systému neustále děje a co se stalo v minulosti. Představují neocenitelný nástroj pro řešení problémů a monitorování linuxového serveru, a proto se často používají s příkazem tail -f k zobrazení událostí v reálném čase tak, jak se dějí a jsou zaznamenány v protokolu.

Chcete-li například zobrazit události související s jádrem, zadejte následující příkaz:


tail -f /var/log/dmesg

Totéž, pokud chcete zobrazit přístup k vašemu webovému serveru:


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

souhrn

Pokud víte, jak efektivně spravovat balíčky, plánovat úlohy a kde hledat informace o aktuálním a minulém provozu vašeho systému, můžete si být jisti, že se nebudete často setkávat s překvapeními. Doufám, že vám tento článek pomohl naučit se nebo obnovit své znalosti o těchto základních dovednostech.

Neváhejte nám napsat pomocí kontaktního formuláře níže, pokud máte nějaké dotazy nebo připomínky.