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:
-b
– joħloq ħoss ta' ħoss jekk il-ħruġ tal-kmand ma jkunx żero.-c
– Jinterpreta sekwenzi tal-kuluri ANSI.-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:
- Uża cron meta jkollok bżonn tmexxi kmandi perjodikament anke wara li s-sistema terġa' tibda.
- 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.