Tarkuna: sanya rubutun bash naka mafi ƙarfi

Hawan igiyar ruwa na cibiyar sadarwar ƙasa na haɗu da a labarin mai ban sha'awa (wanda na kawo nan a rubuce saboda an yi cikakken bayani ne) inda marubucinsa ya nuna mana yadda ake yin rubutun Bash ɗinmu da ƙarfi ta amfani tarkuna.

Sanya rubutun bash dinka yayi karfi da tarko

Ka yi tunanin cewa kana da rubutun bash wanda yake gudana kowace rana a kowane awa shida kuma a wani lokaci ya kasa ko kuma wannan rubutun yana gudana sau biyu a lokaci guda. Wadannan yanayi guda biyu ba su da dadi sosai saboda suna bukatar sa hannun mutum don gyara ko kuma a wasu lokuta ba za a iya magance su ba, suna barin tsarin a cikin halin rashin daidaituwa. Maganin wannan, tsakanin wasu, shine amfani da tarko.

Tarkuna hanya ce mai sauƙi kuma mai tasiri don sarrafa fitowar rubutun bash. Bari mu koma ga yanayin farko, idan aka tsayar da rubutun da hannu, misali tare da ctrl-c, an katse shi yana dawo da siginar fitarwa

INT

kuma idan ta kare da

kill

to fitarwa zata kasance

TERM.

Duk ana iya kallon lambobin fita

kill -l

duk da haka mafi yawan amfani dasu daidai ne

INT, LOKACI, FITA

Idan rubutun ya ƙunshi, misali, aiki tare da fayil tare

rsync

Abu mafi mahimmanci shine dogaro da fayil ɗin kulle wanda baya barin rubutun suyi aiki lokaci ɗaya:

LOCK = "/ var / run / rsync.lock" idan [! -e $ LOCK]; to taba $ LOCK rsync -avz foo bar rm $ LOCK kuma amsa kuwwa "rsync yana riga yana aiki" fi

A cikin Sifaniyanci bayyananne, rubutun da ya gabata yana bincika idan fayil ɗin makullin ya kasance kuma idan babu shi, ya ƙirƙira shi kuma daga baya ya aiwatar da umarnin da ya dace, a ƙarshe ya share fayil ɗin kulle. Idan fayil ɗin ya wanzu, rubutun kawai yana aika saƙo zuwa ga mai amfani yana nuna cewa umarnin yana gudana.

Koyaya, idan akwai matsala mai matsala tana iya faruwa cewa ba'a cire fayil ɗin kullewa ba, yana lalata tasirin da ba'a so. Maganin yana da sauki sosai:

LOCK = "/ var / run / rsync.lock" idan [! -e $ LOCK]; sannan tarkon "rm -f $ LOCK; fita" INT TERM EXT taɓa $ LOCK rsync -avz foo bar rm $ LOCK tarko - INT TERM FITA wani abu kuma amsa kuwwa "rsync yana riga yana aiki" fi

Warewar wannan bayani shine cewa umarnin yana cikin ƙarkon tarko, don haka lokacin da aka karɓi sigina

INT, LOKACI, FITA

rubutun ya tsaya kuma ya share fayil ɗin kullewa.

Yana da kyau a faɗi cewa za'a iya samun halin gasa a cikin rubutun da ke sama tsakanin lokacin da aka tabbatar da fayil ɗin kulle da lokacin da aka ƙirƙira shi. Mafita mai yiwuwa shine amfani da hanyar sake turawa da kuma bash ta noclobber wanda baya turawa zuwa fayil din da yake:

LOCK = "/ var / run / rsync.lock" idan (saita -o noclobber; amsa kuwwa $$> "$ LOCK") 2> / dev / null; sannan tarko 'rm -f "$ LOCK"; fita $? ' INT TERM EXIT rsync -avz foo bar rm -f $ LOCK trap - INT TERM EXIT kuma amsa kuwwa "rsync ya riga ya gudana: $ (cat $ LCK)" fi

Abubuwan da aka ƙayyade na ƙarshe shine cewa ana amfani dashi kamar yadda na riga na faɗi, yanayin noclobber kuma cewa fayil ɗin kulle ya ƙunshi PID na aikin da ake aiwatarwa.

Hakanan ya cancanci ambata cewa akwai sauran mafita kamar

flock

o

solo

duk da haka a cikin wannan sakon na so in raba mafita tare da bash nasa albarkatun. Kuna iya koyon ɗan ƙari game da Tarkuna tare da wannan jagora mai kyau.


Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.

  1.   Raphael Castro ne adam wata m

    Babban! Godiya ga rabawa.

  2.   nx m

    Labari mai kyau, kawai canza 'echo "rsync ya riga ya gudana: $ (cat $ LCK)"' zuwa 'amsa kuwwa "rsync ya riga ya gudana: $ (cat $ LOCK)"' '

    gaisuwa

  3.   dglangos m

    Labari mai ban sha'awa, na'am yallabai! Wannan na kiyaye.

  4.   Joaquin m

    Umarni ne mai matukar amfani mu kiyaye. Na yi amfani da shi a cikin rubutun da na buga a cikin wani rubutu, don share wasu fayilolin da rubutun ya ƙirƙira lokacin da aka tsayar da su.

  5.   DaniFP m

    Mai matukar ban sha'awa, eh yallabai.