Izicupho: yenza imibhalo yakho ye-bash ibe namandla kakhulu

Ngibhekabheka inethiwekhi kazwelonke ngathola i i-athikili ethokozisayo (engiletha lapha ngombhalo ngoba ichazwe ngobuciko) lapho umbhali wayo asikhombisa khona ukuthi singenza kanjani ukuthi imibhalo yethu yeBash ibe namandla ngokuqinile isebenzisa izicupho.

Yenza imibhalo yakho ye-bash ibe namandla kakhulu ngezicupho

Cabanga ukuthi unombhalo we-bash osebenza nsuku zonke njalo emahoreni ayisithupha nokuthi kwesinye isikhathi uyaphazamiseka noma lowo mbhalo usebenza kabili ngasikhathi sinye. Lezi zimo ezimbili azikhululekile neze ngoba zidinga ukungenelela komuntu ukuze kulungiswe noma ngezikhathi ezithile zingenakudingidwa, kushiye uhlelo lusesimweni esingahambelani. Isixazululo salokhu, phakathi kokunye, ukusebenzisa izingibe.

Izicupho kuyindlela elula nephumelelayo yokulawula ukukhishwa kwemibhalo ye-bash. Masibuyele esimeni esifanayo sokuqala, uma iskripthi simiswa ngesandla, ngokwesibonelo nge-ctrl-c, iphazamisekile ukubuyisa isignali yokukhipha

INT

futhi uma kugcina ngo-

kill

lapho-ke umphumela uzoba

TERM.

Onke amakhodi wokuphuma angabukwa ngawo

kill -l

Noma kunjalo, okusetshenziswa kakhulu kunembile

INT, ISIKHATHI, Phuma

Uma iskripthi siqukethe, isibonelo, sokuvumelanisa kwefayela ne-

rsync

into enengqondo kunazo zonke ukuthembela kufayela lokukhiya elingavumeli iskripthi ukuthi sisebenze ngasikhathi sinye:

LOCK = "/ var / run / rsync.lock" uma [! -e $ Khiya]; bese uthinta i- $ LOCK rsync -avz foo bar rm $ LOCK else echo "rsync is already running" fi

NgeSpanish esicacile, iskripthi esingenhla sihlola ukuthi ngabe ifayela lokukhiya likhona yini nokuthi uma lingekho, liyakha bese lenza umyalo ohambisanayo, ekugcineni lisuse ifayela lokukhiya. Uma ifayela likhona, iskripthi simane sithumele umlayezo kumsebenzisi okhombisa ukuthi umyalo usuvele uyasebenza.

Kodwa-ke uma kunesimo esinenkinga kungenzeka ukuthi ifayela lokukhiya alisuswanga, konakalise imiphumela engafuneki. Isixazululo silula:

LOCK = "/ var / run / rsync.lock" uma [! -e $ Khiya]; bese ubamba "rm -f $ LOCK; phuma" INT TERM EXIT touch $ LOCK rsync -avz foo bar rm $ LOCK trap - INT TERM EXIT else echo "rsync is already running" fi

Ukucaciswa kwalesi sixazululo ukuthi umyalo ufakwe ogibeni, ukuze kuthi lapho kutholwa isignali

INT, ISIKHATHI, Phuma

iskripthi siyama bese sisula ifayela lokukhiya.

Kuyafaneleka ukusho ukuthi kungaba nesimo sokuncintisana kuskripthi esingenhla phakathi kwesikhathi lapho ifayela lokukhiya liqinisekiswa nesikhathi elenziwa ngaso. Isixazululo esisodwa esingaba khona ukusebenzisa i-redirect ne-bash's noclobber mode engaqondisi kufayela elivele likhona:

LOCK = "/ var / run / rsync.lock" uma (set -o noclobber; echo $$> "$ LOCK") 2> / dev / null; bese ubamba 'rm -f "$ LOCK"; phuma $? ' I-INT TERM EXIT rsync -avz foo bar rm -f $ LOCK trap - INT TERM EXIT enye i-echo "rsync isivele isebenza: $ (cat $ LCK)" fi

Okucacile kwalokhu kwamuva ukuthi kusetshenziswa njengoba bengishilo, imodi ye-noclobber nokuthi ifayela lokukhiya liqukethe i-PID yenqubo esebenzayo.

Kuyafaneleka futhi ukusho ukuthi kunezinye izixazululo ezinjenge

flock

o

solo

kepha kulokhu okuthunyelwe bengifuna ukwabelana ngezixazululo ngezinsizakusebenza zika-bash. Ungafunda okwengeziwe mayelana Nezicupho ngalokhu umhlahlandlela omuhle kakhulu.


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele imininingwane: Miguel Ángel Gatón
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.

  1.   URafael Castro kusho

    Kuhle! Siyabonga ngokwabelana.

  2.   nx kusho

    I-athikili enhle, vele ushintshe 'echo "rsync isivele isebenza: $ (cat $ LCK)"' to 'echo "rsync is already running: $ (cat $ LOCK)"'

    Phendula ngokucaphuna

  3.   dglangos kusho

    I-athikili ethakazelisa kakhulu, yebo mnumzane! Lokhu ngiyakugcina.

  4.   Joaquin kusho

    Kungumyalo owusizo kakhulu ukugcina engqondweni. Ngiwusebenzise kuskripthi engisishicilele kokuthunyelwe, ukususa amanye amafayela owenziwe iskripthi lapho simiswa.

  5.   UDaniFP kusho

    Kuyathakazelisa kakhulu, yebo mnumzane.