Kif Tmexxi jew Irrepeti Kmand Linux Kull X Sekondi Għal Dejjem


Amministratur tas-sistema spiss jeħtieġ li jmexxi kmand ripetutament f'ċerti perjodi ta 'żmien. Ħafna drabi dawn il-kompiti jistgħu jitlestew faċilment b'kmandi cron sempliċi. Fil-biċċa l-kbira tal-każijiet  dan għandu jaħdem, iżda l-iqsar perjodu li tista’ tħaddem il-kmand tal-cron huwa kull minuta. Jemmnu jew le, f'ħafna każijiet dan huwa bil-mod wisq.

F'dan it-tutorja, int se titgħallem teknika ta' skript sempliċi biex timmonitorja jew iżżomm għajnejk fuq kmand partikolari fi stat ta' tħaddim kontinwu simili għall-kmand ta' fuq (immonitorja kontinwament il-proċess u l-utilizzazzjoni tal-memorja) għal kull 3 sekondi b'mod awtomatiku.

Aħna mhux se nieqfu biex niddiskutu r-raġunijiet, għaliex ikollok bżonn tmexxi l-kmandi ta 'spiss. Nemmen li kulħadd għandu raġunijiet differenti għal dan fl-impjiegi ta 'kuljum jew anke fid-dar PCs u laptops.

1. Uża Kmand tal-għassa

Watch huwa kmand tal-Linux li jippermettilek tesegwixxi kmand jew programm perjodikament u jurik ukoll output fuq l-iskrin. Dan ifisser li inti tkun tista 'tara l-output tal-programm fil-ħin. B'mod awtomatiku l-għassa terġa' tmexxi l-kmand/programm kull 2 sekondi. L-intervall jista 'jinbidel faċilment biex jissodisfa r-rekwiżiti tiegħek.

Watch huwa estremament faċli biex tużah, biex tittestjaha, tista 'taħdem terminal Linux minnufih u ttajpja l-kmand li ġej:

# watch free -m

Il-kmand ta 'hawn fuq se jiċċekkja l-memorja ħielsa tas-sistema tiegħek u jaġġorna r-riżultati tal-kmand b'xejn kull żewġ sekondi.

Kif jidher fl-output ta' hawn fuq, għandek header, li turi informazzjoni dwar (mix-xellug għal-lemin) intervall ta' aġġornament, kmand li qed jiġi esegwit u ħin kurrenti. Jekk tixtieq taħbi din l-intestatura, tista' tuża l-għażla -t.

Il-mistoqsija loġika li jmiss hija - kif tibdel l-intervall tal-eżekuzzjoni. Għal dak il-għan, tista' tuża l-għażla -n, li tispeċifika l-intervall li bih se jiġi esegwit il-kmand. Dan l-intervall huwa speċifikat f'sekondi. Mela ejja ngħidu li trid tmexxi l-fajl script.sh tiegħek kull 10 sekondi, tista’ tagħmel dan hekk:

# watch -n 10 script.sh

Innota li jekk tmexxi l-kmand kif muri hawn fuq, ser ikollok bżonn li cd għad-direttorju (tgħallem Tgħallem Eżempji ta’ Kmand 15 cd) fejn jinsab l-iskript jew inkella tispeċifika t-triq sħiħa għal dak l-iskritt.

Għażliet utli oħra tal-kmand tal-għassa huma:

  1. -b – joħloq ħoss ta' ħoss jekk il-ħruġ tal-kmand ma jkunx żero.
  2. -c – Jinterpreta sekwenzi tal-kuluri ANSI.
  3. -d – jenfasizza l-bidliet fl-output tal-kmand.

Ejja ngħidu li trid tissorvelja l-utenti li illoggjaw, l-uptime tas-server u l-produzzjoni medja tat-tagħbija f'fażi kontinwa kull ftit sekondi, imbagħad uża l-kmand li ġej kif muri:

# watch uptime

Biex toħroġ mill-kmand, agħfas CTRL+C.

Hawnhekk, il-kmand ta' uptime se jaħdem u juri r-riżultati aġġornati kull 2 sekondi b'mod awtomatiku.

Fil-Linux, waqt li tikkopja fajls minn post għal ieħor bl-użu tal-kmand cp, il-progress tad-dejta ma jintwerax, biex tara l-progress tad-dejta li tkun qed tiġi kkupjata, tista’ tuża l-watch kmand flimkien mal-kmand du -s biex jiċċekkja l-użu tad-diska f'ħin reali.

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

Jekk taħseb li l-proċess ta 'hawn fuq huwa kkumplikat wisq biex jinkiseb, allura nissuġġerixxi li tmur għall-kmand tal-kopja bil-quddiem, li juri l-progress tad-data waqt l-ikkupjar.

2. Uża Kmand tal-irqad

L-irqad ħafna drabi jintuża biex jiddibaggja skripts tal-qoxra, iżda għandu ħafna skopijiet utli oħra wkoll. Per eżempju, meta kkombinat ma 'for jew waqt li loops, tista' tikseb riżultati pjuttost tal-biża '.

Jekk int ġdid għall-bash scripting, tista' tiċċekkja l-gwida tagħna dwar il-bash loops hawn.

F'każ li din tkun l-ewwel darba li tisma' dwar il-kmand \sleep\, dan jintuża biex jittardja xi ħaġa għal ammont ta' żmien speċifikat. Fl-iskripts, tista 'tużaha biex tgħid lill-iskript tiegħek biex iħaddem il-kmand 1, stenna għal 10 sekondi u mbagħad iħaddem il-kmand 2.

Bil-linji ta 'hawn fuq, tista' tgħid lil bash biex imexxi kmand, torqod għal N ammont ta 'sekondi u mbagħad jerġa' jmexxi l-kmand.

Hawn taħt tista' tara eżempji taż-żewġ loops:

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

L-inforra waħda ta' hawn fuq, se tħaddem il-kmand tal-eku u turi d-data attwali, total ta' 10 darbiet, b'5 sekondi sleep bejn l-eżekuzzjonijiet.

Hawnhekk hawn kampjun tal-output:

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

Tista 'tbiddel l-eku u l-kmandi tad-data bil-kmandi jew l-iskrittura tiegħek stess u tibdel l-intervall ta' rqad skont il-bżonnijiet tiegħek.

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

Hawn hu l-output tal-kampjun:

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

Il-kmand ta' hawn fuq se jaħdem sakemm jinqatel jew jiġi interrott mill-utent. Jista 'jkun utli jekk ikollok bżonn tmexxi kmand li jaħdem fl-isfond u ma tridx toqgħod fuq cron.

Importanti: Meta tuża l-metodi ta 'hawn fuq, huwa rakkomandat ħafna li tissettja intervall twil biżżejjed biex tagħti biżżejjed ħin tal-kmand tiegħek biex tispiċċa taħdem, qabel l-eżekuzzjoni li jmiss.

Konklużjoni

Il-kampjuni f'dan it-tutorja huma utli, iżda mhumiex maħsuba biex jissostitwixxu kompletament l-utilità cron. Huwa f'idejnek li ssib liema waħda taħdem aħjar għalik, imma jekk irridu nisseparaw l-użu taż-żewġ tekniki, jien ngħid dan:

  1. Uża cron meta jkollok bżonn tmexxi kmandi perjodikament anke wara li s-sistema terġa' tibda.
  2. Uża l-metodi spjegati f'dan it-tutorja għal programmi/skripts li huma maħsuba biex jaħdmu fis-sessjoni attwali tal-utent.

Bħal dejjem jekk għandek xi mistoqsijiet jew kummenti, toqgħodx lura milli tissottomettihom fit-taqsima tal-kummenti hawn taħt.