Jak pravidelně spouštět program pomocí příkazu Watch v systému Linux

Někdy potřebujete opakovaně spouštět příkaz nebo program, abyste mohli sledovat různé aspekty vašeho systému, jako jsou probíhající procesy, využití místa na disku nebo přihlášení uživatelů. Příkaz watch v Linuxu vám umožňuje automatizovat tyto úlohy, aniž byste je museli znovu a znovu ručně spouštět.

Pomocí tohoto příkazu můžete sledovat systémové aktivity v reálném čase, jako jsou přihlášení uživatelů, stav sítě, využití paměti a CPU, místo na disku atd. Podívejme se, jak používat příkaz watch v Linuxu.

Co je příkaz Watch?

Příkaz watch Linux spouští zadaný příkaz nebo program opakovaně v pravidelných intervalech a zobrazuje jeho výstup v terminálu. To vám umožní sledovat změny ve výstupu v reálném čase. Obnovuje výstup v každém intervalu a přepisuje předchozí výstup příkazu. Ve výchozím nastavení se příkaz opakuje každé dvě sekundy a pokračuje, dokud jej ručně nezastavíte pomocí Ctrl + C.

Sledujte syntaxi příkazů

Syntaxe příkazu watch je:

 watch options <command> 

Pro použití s ​​příkazem watch jsou k dispozici různé možnosti příkazového řádku. Pokud spustíte příkaz watch bez jakýchkoli voleb, spustí se zadaný příkaz po každých dvou sekundách. Například následující vám ukáže výstup příkazu ls:

 watch ls -l ~/ 

Výstup vám ukáže změny ve výpisu adresáře, pokud je soubor vytvořen, odstraněn nebo změněna velikost, přičemž výstup bude obnovován každé dvě sekundy.

Spusťte příkaz každých X sekund pomocí hodinek

Můžete změnit interval aktualizace příkazu watch. To znamená, že příkazu watch můžete říct, aby počkal x sekund, než příkaz zopakuje. Chcete-li změnit interval aktualizace, použijte volbu -n následovanou časovým intervalem v sekundách.

 watch -n  

Chcete-li například spustit příkaz po každých 5 sekundách, spusťte:

 watch -n 5 <command> 

Zvýrazněte změny mezi aktualizacemi

Příkaz watch přepíše svůj výstup při každém obnovení. Pomocí volby -d můžete také zvýraznit změny mezi předchozím a aktualizovaným výstupem.

 watch -d 

Skrýt záhlaví ve výstupu příkazu hodinek

Ve výchozím nastavení příkaz watch zobrazuje v horní části každého výstupu záhlaví, které obsahuje interval aktualizace, název příkazu a aktuální datum a čas systému. Záhlaví můžete z výstupu odstranit pomocí volby -t:

 watch -t <command> 

Přehrát Pípnutí při chybě

Když proces Linuxu skončí, vrátí kód ukončení. Podle konvence je hodnota 0 při úspěchu a nenulová, což představuje chybu. Volba -b příkazu watch přehraje pípnutí, pokud příkaz vrátí nenulový konec.

Řekněme, že chcete monitorovat sshd.service a dostávat upozornění, když se služba zastaví; použili byste:

 watch -b sudo systemctl status sshd.service 

Tento příkaz vydá pípnutí, když se služba zastaví. Pípání se zastaví, když se služba obnoví. Chcete-li to vyzkoušet, otevřete další okno terminálu a zastavte službu. To bude neustále pípat, dokud službu znovu nespustíte. Chcete-li však tuto funkci používat, musíte mít v systému nainstalovaný balíček pípnutí.

Ukončete příkaz watch při změně výstupu

Příkazu watch můžete také říci, aby se zastavil a skončil, když se výstup příkazu změní. Můžete to udělat pomocí volby -g. Tato možnost je velmi užitečná ve scénářích, kdy čekáte na určité změny ve výstupu.

Jakmile se výstup změní, příkaz watch se zastaví. Toto použití můžete kombinovat s příkazem echo pro zobrazení zprávy na obrazovce.

Zvažte například scénář, kdy čekáte, až soubor dorazí do vašeho adresáře. Následující příkaz bude sledovat adresář pro zadaný soubor. Jakmile dorazí, příkaz watch se zastaví a na terminálu se zobrazí soubor zpráv dorazil.

 watch -g "ls -l | grep filename" && echo "file arrived" 

Dalším užitečným příkladem je upozornění, když se do vašeho systému přihlásí konkrétní uživatel:

 watch -g "who | grep username" && echo "username logged in" 

Tento příkaz bude sledovat výstup příkazu who, který obsahuje seznam přihlášených uživatelů. Jakmile se uživatel přihlásí, příkaz watch se zastaví a na terminálu se zobrazí zpráva.

Podobně můžete příkazu watch říci, aby zastavil službu, když jsou v souboru provedeny nějaké změny. Mějte na paměti, že při použití zřetězeného řetězce příkazů budete muset celý příkaz uzavřít do uvozovek.

Sledujte aktivity ve vašem systému Linux

Pokud zjistíte, že děláte stejný proces opakovaně, zvažte použití příkazu watch k jeho automatizaci. Ušetří vám to časté psaní příkazů, abyste viděli, co se změnilo.

Příkaz watch můžete také použít s dalšími příkazy Linuxu k monitorování systémových prostředků a aktivit a sledování změn v souborech nebo adresářích.