Kuinka ajaa tai toistaa Linux-komento X sekunnin välein ikuisesti


Järjestelmänvalvojan on usein suoritettava komento toistuvasti tietyn ajan kuluessa. Usein tällaiset tehtävät voidaan suorittaa helposti yksinkertaisilla cron-komennoilla. Useimmissa tapauksissa tämän pitäisi toimia, mutta lyhin jakso, jonka voit suorittaa cron-komennon, on minuutin välein. Usko tai älä, monissa tapauksissa tämä on liian hidasta.

Tässä opetusohjelmassa opit yksinkertaisia komentosarjatekniikoita, joilla voit seurata tai pitää silmällä tiettyä komentoa jatkuvasti käynnissä olevassa tilassa, joka on samanlainen kuin top-komento (seuraa jatkuvasti prosessia ja muistin käyttöä) oletuksena joka 3. sekunti.

Emme pysähdy keskustelemaan syistä, miksi sinun täytyy suorittaa komentoja näin usein. Uskon, että jokaisella on eri syyt siihen päivittäisessä työssään tai jopa kotona tietokoneissa ja kannettavissa tietokoneissa.

1. Käytä kellokomentoa

Katso on Linux-komento, jonka avulla voit suorittaa komennon tai ohjelman säännöllisin väliajoin ja näyttää tulosteen myös näytöllä. Tämä tarkoittaa, että voit nähdä ohjelman tulosteen ajoissa. Oletuksena kello suorittaa komennon/ohjelman uudelleen 2 sekunnin välein. Aikaväliä voidaan helposti muuttaa tarpeidesi mukaan.

Tarkkaile muistin käyttöä

"Katso" on erittäin helppokäyttöinen, testataksesi sitä käynnistämällä Linux-pääte heti ja kirjoittamalla seuraavan komennon:

watch free -m

Yllä oleva komento tarkistaa järjestelmän vapaan muistin ja päivittää vapaan komennon tulokset kahden sekunnin välein.

Kuten yllä olevasta lähdöstä näkyy, sinulla on otsikko, joka näyttää (vasemmalta oikealle) päivitysvälin, suoritettavan komennon ja nykyisen ajan. Jos haluat piilottaa tämän otsikon, voit käyttää vaihtoehtoa -t.

Seuraava looginen kysymys on – kuinka suoritusväliä muutetaan. Tätä tarkoitusta varten voit käyttää vaihtoehtoa -n, joka määrittää aikavälin, jolla komento suoritetaan. Tämä aikaväli on määritetty sekunneissa. Oletetaan, että haluat suorittaa script.sh-tiedoston 10 sekunnin välein. Voit tehdä sen seuraavasti:

watch -n 10 script.sh

Huomaa, että jos suoritat komennon yllä olevan kuvan mukaisesti, sinun on cd hakemistoon (lue 15 cd:n komentoesimerkkejä), jossa skripti sijaitsee tai määritä muuten kyseisen skriptin koko polku.

Muita hyödyllisiä katselukomennon vaihtoehtoja ovat:

  1. -b – antaa äänimerkin, jos komennon poistuminen ei ole nolla.
  2. -c – tulkitsee ANSI-värisekvenssit.
  3. -d – korostaa muutokset komennon lähdössä.

Tarkkaile kirjautuneita käyttäjiä, käytettävyyttä ja keskimääräistä kuormitusta

Oletetaan, että haluat seurata kirjautuneita käyttäjiä, palvelimen käyttöaikaa ja keskimääräistä kuormitusta jatkuvassa vaiheessa muutaman sekunnin välein, ja käytä sitten seuraavaa komentoa kuvan mukaisesti:

watch uptime

Poistu komennosta painamalla CTRL+C.

Tässä 'uptime'-komento suoritetaan ja näyttää päivitetyt tulokset oletuksena 2 sekunnin välein.

Tarkkaile kopiointikomennon edistymistä

Kun Linuxissa kopioidaan tiedostoja paikasta toiseen cp-komennolla, tietojen etenemistä ei näytetä. Jos haluat nähdä kopioitavien tietojen edistymisen, voit käyttää watch a. komento yhdessä du -s-komennon kanssa tarkistaaksesi levyn käytön reaaliajassa.

cp ubuntu-15.10-desktop-amd64.iso /home/tecmint/ &
watch -n 0.1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso 

Jos yllä oleva prosessi on mielestäsi liian monimutkainen saavuttaakseen, suosittelen käyttämään Advance copy -komentoa, joka näyttää tietojen edistymisen kopioinnin aikana.

2. Käytä nukkumiskomentoa

Lepotilaa käytetään usein komentosarjojen virheenkorjaukseen, mutta sillä on myös monia muita hyödyllisiä tarkoituksia. Esimerkiksi for- tai while-silmukoihin yhdistettynä voit saada melko mahtavia tuloksia.

Jos olet uusi bash-skriptien käyttäjä, voit tarkistaa bash-silmukoita koskevan oppaamme täältä.

Jos tämä on ensimmäinen kerta, kun kuulet komennosta "sleep", sitä käytetään viivyttämään jotakin tietyn ajan. Skripteissä voit käyttää sitä käskemään skriptiä suorittamaan komennon 1, odottamaan 10 sekuntia ja suorittamaan sitten komennon 2.

Yllä olevien silmukoiden avulla voit käskeä bashia suorittamaan komennon, nukkumaan N sekunnin ajan ja suorittamaan komennon uudelleen.

Alla näet esimerkkejä molemmista silmukoista:

silmukalle Esimerkki

for i in {1..10}; do echo -n "This is a test in loop $i "; date ; sleep 5; done

Yllä oleva liner suorittaa kaikukomennon ja näyttää nykyisen päivämäärän, yhteensä 10 kertaa, 5 sekunnin lepotilassa suoritusten välillä.

Tässä on esimerkkituloste:

This is a test in loop 1 Wed Feb 17 20:49:47 EET 2016
This is a test in loop 2 Wed Feb 17 20:49:52 EET 2016
This is a test in loop 3 Wed Feb 17 20:49:57 EET 2016
This is a test in loop 4 Wed Feb 17 20:50:02 EET 2016
This is a test in loop 5 Wed Feb 17 20:50:07 EET 2016
This is a test in loop 6 Wed Feb 17 20:50:12 EET 2016
This is a test in loop 7 Wed Feb 17 20:50:17 EET 2016
This is a test in loop 8 Wed Feb 17 20:50:22 EET 2016
This is a test in loop 9 Wed Feb 17 20:50:27 EET 2016
This is a test in loop 10 Wed Feb 17 20:50:32 EET 2016

Voit muuttaa kaiku- ja päivämäärä-komentoja omilla komennoillasi tai komentosarjallasi ja muuttaa nukkumisaikaväliä tarpeidesi mukaan.

while-silmukka Esimerkki

while true; do echo -n "This is a test of while loop";date ; sleep 5; done

Tässä näytetulostus:

This is a test of while loopWed Feb 17 20:52:32 EET 2016
This is a test of while loopWed Feb 17 20:52:37 EET 2016
This is a test of while loopWed Feb 17 20:52:42 EET 2016
This is a test of while loopWed Feb 17 20:52:47 EET 2016
This is a test of while loopWed Feb 17 20:52:52 EET 2016
This is a test of while loopWed Feb 17 20:52:57 EET 2016

Yllä oleva komento toimii, kunnes käyttäjä joko lopettaa sen tai keskeyttää sen. Siitä voi olla hyötyä, jos sinun on suoritettava taustalla toimiva komento etkä halua luottaa cron-toimintoon.

Tärkeää: Kun käytät yllä olevia menetelmiä, on erittäin suositeltavaa, että asetat aikavälin riittävän pitkäksi, jotta komennon suorittamiselle jää riittävästi aikaa ennen seuraavaa suoritusta.

Johtopäätös

Tämän opetusohjelman näytteet ovat hyödyllisiä, mutta niiden ei ole tarkoitus korvata cron-apuohjelmaa kokonaan. On sinun päätettävissäsi, kumpi toimii sinulle paremmin, mutta jos meidän on erotettava molempien tekniikoiden käyttö, sanoisin näin:

  1. Käytä cronia, kun sinun on suoritettava komentoja ajoittain jopa järjestelmän uudelleenkäynnistyksen jälkeen.
  2. Käytä tässä opetusohjelmassa selitettyjä menetelmiä ohjelmille/komentosarjoille, jotka on tarkoitus suorittaa nykyisen käyttäjäistunnon aikana.

Kuten aina, jos sinulla on kysyttävää tai kommentteja, älä epäröi lähettää ne alla olevaan kommenttiosaan.