![Tu je zoznam telefónov, ktoré dostanú aktualizáciu Android 10](/f/33fb3b7850c0dae756186aeb068e7904.jpg?width=100&height=100)
Správca systému často potrebuje spustiť príkaz opakovane v určitom časovom období. Takéto úlohy je často možné ľahko vykonať jednoducho cron príkazy. Vo väčšine prípadov by to malo fungovať, ale najkratšia doba, po ktorú môžete spustiť príkaz cron, je každú 1 minútu. Verte či neverte, v mnohých prípadoch je to príliš pomalé.
V tomto návode sa naučíte jednoduché skriptovacie techniky na monitorovanie alebo sledovanie konkrétneho príkazu v nepretržite spustenom stave podobnom vrchný príkaz (nepretržite monitorujte využitie procesu a pamäte) štandardne každé 3 sekundy.
Neprestaneme diskutovať o dôvodoch, prečo by ste museli často spúšťať príkazy. Verím, že každý má na to iné dôvody vo svojom každodennom zamestnaní alebo dokonca doma pri počítačoch a prenosných počítačoch.
Sledujte je príkaz Linux, ktorý vám umožňuje pravidelne vykonávať príkaz alebo program a tiež zobrazuje váš výstup na obrazovku. To znamená, že budete môcť vidieť výstup programu včas. V predvolenom nastavení hodinky znova spustia príkaz/program každé 2 sekundy. Interval je možné ľahko zmeniť, aby vyhovoval vašim požiadavkám.
Používanie hodiniek „Watch“ je veľmi jednoduché. Ak ich chcete otestovať, môžete ihneď spustiť terminál Linuxu a napísať nasledujúci príkaz:
# hodinky zadarmo -m.
Vyššie uvedený príkaz skontroluje voľnú pamäť systému a aktualizuje výsledky súboru voľný príkaz každé dve sekundy.
Ako je vidieť na vyššie uvedenom výstupe, máte hlavičku, ktorá zobrazuje informácie o (zľava doprava) intervale aktualizácií, vykonávanom príkaze a aktuálnom čase. Ak chcete skryť túto hlavičku, môžete použiť -t
možnosť.
Ďalšou logickou otázkou je - ako zmeniť interval vykonávania. Na tento účel môžete použiť -n
voľba, ktorá určuje interval, v ktorom sa príkaz vykoná. Tento interval je špecifikovaný v sekundách. Povedzme teda, že chcete spustiť svoj script.sh
každých 10 sekúnd, môžete to urobiť takto:
# watch -n 10 script.sh.
Poznámka že ak spustíte príkaz ako je uvedené vyššie, budete musieť cd
do adresára (učiť sa Naučte sa príklady príkazov 15 cd), kde sa skript nachádza, alebo inak zadajte úplnú cestu k tomuto skriptu.
Ďalšie užitočné možnosti príkazu watch sú:
-b
-vytvára pípnutie, ak je ukončenie príkazu nenulové.-c
- Interpretuje farebné sekvencie ANSI.-d
- zvýrazní zmeny vo výstupe príkazu.Povedzme, že chcete monitorovať prihlásených používateľov, dobu prevádzky servera a načítať priemerný výkon v nepretržitej fáze každých niekoľko sekúnd, potom použite nasledujúci príkaz podľa obrázku:
# pozerať uptime.
Ak chcete príkaz ukončiť, stlačte CTRL+C
.
Tu, 'uptime'
príkaz sa štandardne spustí a zobrazí aktualizované výsledky každé 2 sekundy.
V systéme Linux pri kopírovaní súborov z jedného umiestnenia na druhé pomocou cp
priebeh dát sa nezobrazuje, aby ste videli priebeh kopírovania dát, môžete použiť sledovať
príkaz spolu s du -s príkaz na kontrolu využitia disku v reálnom čase.
# cp ubuntu-15.10-desktop-amd64.iso/home/tecmint/& # watch -n 0,1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso
Ak si myslíte, že vyššie uvedený postup je príliš komplikovaný, navrhujem, aby ste pokračovali Príkaz na predbežné kopírovanie, ktorý zobrazuje priebeh údajov pri kopírovaní.
Spánok sa často používa na ladenie skriptov Shell, ale má aj mnoho ďalších užitočných účelov. Napríklad v kombinácii s pre
alebo kým
slučky, môžete dosiahnuť celkom úžasné výsledky.
Ak ste nováčik v skriptovaní bash, môžete si pozrieť nášho sprievodcu o bash slučkách tu.
V prípade, že o tejto téme počujete prvýkrát "spať"
príkaz, používa sa na oneskorenie niečoho po určenú dobu. V skriptoch ho môžete použiť na to, aby ste skriptu povedali, aby spustil príkaz 1, počkajte 10 sekúnd a potom spustite príkaz 2.
Pomocou vyššie uvedených slučiek môžete povedať, že bash má spustiť príkaz, spať N. sekúnd a potom príkaz spustite znova.
Nasledujú príklady oboch slučiek:
# for i in {1..10}; do echo -n "Toto je test v slučke $ i"; dátum; spať 5; hotový.
Vyššie uvedená jedna vložka pobeží príkaz echo a zobrazí aktuálny dátum, celkom 10 -krát, s 5 -sekundovým spánkom medzi popravami.
Tu je ukážkový výstup:
Toto je test v slučke 1 Streda 17. februára 20:49:47 EET 2016. Toto je test v slučke 2 Streda 17. februára 20:49:52 EET 2016. Toto je test v slučke 3 Streda 17. februára 20:49:57 EET 2016. Toto je test v slučke 4 Streda 17. februára 20:50:02 EET 2016. Toto je test v slučke 5 Streda 17. februára 20:50:07 EET 2016. Toto je test v slučke 6 Streda 17. februára 20:50:12 EET 2016. Toto je test v slučke 7 Streda 17. februára 20:50:17 EET 2016. Toto je test v slučke 8 Streda 17. februára 20:50:22 EET 2016. Toto je test v slučke 9 Streda 17. februára 20:50:27 EET 2016. Toto je test v slučke 10 Streda 17. februára 20:50:32 EET 2016.
Môžete zmeniť ozvena a dátum príkazov pomocou vlastných príkazov alebo skriptu a zmeňte interval spánku podľa svojich potrieb.
# pokiaľ je to pravda; do echo -n "Toto je test cyklu while"; date; spať 5; hotový
Tu je ukážkový výstup:
Toto je test while loopWed 17. februára 20:52:32 EET 2016. Toto je test while loopWed 17. februára 20:52:37 EET 2016. Toto je test while loopWed 17. februára 20:52:42 EET 2016. Toto je test while loopWed 17. februára 20:52:47 EET 2016. Toto je test while loopWed 17. februára 20:52:52 EET 2016. Toto je test while loopWed 17. februára 20:52:57 EET 2016.
Vyššie uvedený príkaz bude bežať, kým nie je buď zabitý alebo prerušený užívateľom. Môže sa vám to hodiť, ak potrebujete spustiť príkaz spustený na pozadí a nechcete s tým počítať cron.
Dôležité: Pri použití vyššie uvedených metód dôrazne odporúčame, aby ste pred ďalším spustením nastavili dostatočne dlhý interval, aby mal váš príkaz dostatok času na dokončenie spustenia.
Ukážky v tomto návode sú užitočné, ale nie sú určené na úplné nahradenie súboru nástroj cron. Je na vás, aby ste zistili, ktorá z nich vám vyhovuje lepšie, ale ak by sme museli oddeliť používanie oboch techník, povedal by som toto:
Ako vždy, ak máte akékoľvek otázky alebo pripomienky, neváhajte ich odoslať v sekcii komentárov nižšie.