Jinsi ya Kuendesha au Kurudia Amri ya Linux Kila Sekunde X Milele


Msimamizi wa mfumo mara nyingi anahitaji kutekeleza amri mara kwa mara katika vipindi fulani vya wakati. Mara nyingi kazi kama hizi zinaweza kukamilishwa kwa urahisi kwa amri rahisi za cron. Katika hali nyingi  hii inapaswa kufanya kazi, lakini kipindi kifupi zaidi ambacho unaweza kutekeleza amri ya cron ni kila dakika 1. Amini usiamini, katika hali nyingi hii ni polepole sana.

Katika somo hili, utajifunza mbinu rahisi za uandishi ili kufuatilia au kufuatilia amri fulani katika hali inayoendelea kufanya kazi sawa na amri ya juu (kuendelea kufuatilia mchakato na utumiaji wa kumbukumbu) kwa kila sekunde 3 kwa chaguo-msingi.

Hatutaacha kujadili sababu, kwa nini utahitaji kuendesha amri mara nyingi. Ninaamini kila mtu ana sababu tofauti za hiyo katika kazi zao za kila siku au hata kwenye Kompyuta za nyumbani na kompyuta za mkononi.

1. Tumia Amri ya saa

Saa ni amri ya Linux inayokuruhusu kutekeleza amri au programu mara kwa mara na pia kukuonyesha matokeo kwenye skrini. Hii ina maana kwamba utaweza kuona matokeo ya programu kwa wakati. Kwa saa chaguo-msingi huendesha tena amri/programu kila sekunde 2. Muda unaweza kubadilishwa kwa urahisi ili kukidhi mahitaji yako.

Saa ni rahisi sana kutumia, ili kuijaribu, unaweza kuwasha terminal ya Linux mara moja na uandike amri ifuatayo:

# watch free -m

Amri iliyo hapo juu itaangalia kumbukumbu yako ya bure ya mfumo na kusasisha matokeo ya amri ya bure kila sekunde mbili.

Kama                                                                 ye  ya yada ya kisasisha muda wa sasisho da ya ya ya sasisho ya muda na sa} Ikiwa ungependa kuficha kichwa hiki, unaweza kutumia chaguo la -t.

Swali la kimantiki lifuatalo ni - jinsi ya kubadilisha muda wa utekelezaji. Kwa madhumuni hayo, unaweza kutumia chaguo la -n, ambalo linabainisha muda ambao amri itatekelezwa. Muda huu umebainishwa kwa sekunde. Kwa hivyo tuseme unataka kutekeleza faili yako ya script.sh kila sekunde 10, unaweza kuifanya hivi:

# watch -n 10 script.sh

Kumbuka kwamba ukitekeleza amri kama ilivyoonyeshwa hapo juu, utahitaji cd kwenye saraka (jifunze Mifano 15 ya Amri za cd) mahali hati iko au vinginevyo ubainishe njia kamili ya hati hiyo.

Chaguzi zingine muhimu za amri ya saa ni:

  1. -b - huunda mlio wa mlio ikiwa amri ya kutoka si ya sufuri.
  2. -c - Hufasiri mfuatano wa rangi wa ANSI.
  3. -d - huangazia mabadiliko katika utoaji wa amri.

Wacha tuseme unataka kufuatilia watumiaji walioingia, muda wa seva na pato la wastani la upakiaji katika awamu inayoendelea kila sekunde chache, kisha utumie amri ifuatayo kama inavyoonyeshwa:

# watch uptime

Ili kuacha amri, bonyeza CTRL+C.

Hapa, amri ya uptime itaendesha na kuonyesha matokeo yaliyosasishwa kila baada ya sekunde 2 kwa chaguo-msingi.

Katika Linux, unaponakili faili kutoka eneo moja hadi jingine kwa kutumia cp amri, maendeleo ya data hayaonyeshwi, ili kuona maendeleo ya data inayonakiliwa, unaweza kutumia saa amri pamoja na du -s amri ya kuangalia utumiaji wa diski kwa wakati halisi.

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

Ikiwa unafikiri kwamba mchakato ulio juu ni ngumu sana kufikia, basi ninapendekeza uende kwa amri ya nakala ya Advance, ambayo inaonyesha maendeleo ya data wakati wa kunakili.

2. Tumia Amri ya kulala

Usingizi mara nyingi hutumiwa kutatua hati za ganda, lakini ina madhumuni mengine mengi muhimu pia. Kwa mfano, ikiunganishwa na kwa au wakati vitanzi, unaweza kupata matokeo ya kupendeza.

Ikiwa wewe ni mpya kwa uandishi wa bash, unaweza kuangalia mwongozo wetu kuhusu vitanzi vya bash hapa.

Iwapo hii ni mara ya kwanza unaposikia kuhusu amri ya \lala\, inatumika kuchelewesha kitu kwa muda maalum. Katika maandishi, unaweza kuitumia kuambia hati yako kutekeleza amri 1, subiri kwa sekunde 10 kisha uendesha amri 2.

Ukiwa na vitanzi hapo juu, unaweza kumwambia bash atekeleze amri, lala kwa N kiasi cha sekunde kisha utekeleze amri tena.

Hapo chini unaweza kuona mifano ya vitanzi vyote viwili:

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

Mjengo mmoja ulio hapo juu, utatumia amri ya mwangwi na kuonyesha tarehe ya sasa, jumla ya mara 10, na usingizi wa sekunde 5 kati ya utekelezaji.

Hapa kuna pato la mfano:

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

Unaweza kubadilisha amri za mwangwi na tarehe kwa amri au hati yako mwenyewe na kubadilisha muda wa kulala kulingana na mahitaji yako.

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

Hapa kuna pato la mfano:

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

Amri iliyo hapo juu itatekelezwa hadi iuawe au kukatizwa na mtumiaji. Inaweza kuja kwa manufaa ikiwa unahitaji kutekeleza amri inayoendesha nyuma na hutaki kutegemea cron.

Muhimu: Unapotumia mbinu zilizo hapo juu, inapendekezwa sana uweke muda wa kutosha ili kutoa muda wa kutosha wa amri yako kumaliza kutekeleza, kabla ya utekelezaji unaofuata.

Hitimisho

Sampuli katika somo hili ni muhimu, lakini hazikusudiwa kubadilisha kabisa matumizi ya cron. Ni juu yako kupata ni ipi inayofanya kazi vyema kwako, lakini ikiwa itabidi kutenganisha utumiaji wa mbinu zote mbili, ningesema hivi:

  1. Tumia cron unapohitaji kutekeleza amri mara kwa mara hata baada ya mfumo kuwashwa upya.
  2. Tumia mbinu zilizoelezwa katika mafunzo haya kwa programu/hati ambazo zinakusudiwa kuendeshwa ndani ya kipindi cha sasa cha mtumiaji.

Kama kawaida ikiwa una maswali au maoni yoyote, usisite kuyawasilisha katika sehemu ya maoni hapa chini.