Zdravo!

Zanima me, ali lahko ukaza mv in mkdir obravnavam kot
atomski (atomarni?) operaciji. Problem je tak:

1. Več procesov (shell skripte) hkrati kreira poddirektorije znotraj
   istega direktorija. To delam tako:

       until FAXID="`date "+%Y-%m-%d-%a-%T"`" ; mkdir $FAXDIR/$FAXID ; do
          sleep 1
       done

   Imena poddirektorijev so sestavljena iz datuma in časa. Če operacija
   (mkdir) ne uspe, pač počaka eno sekundo in poizkusi spet. Pri delu s
   faksi mi nekaj sekund itak ne pomeni nič.
   Ali se lahko (teoretično) zgodi, da bi v dveh procesih uspel mkdir
   istega direktorija? V praksi dvomim da se bo to zgodilo, sploh ko
   bom v $FAXID dodal še id modema :)
   Ampak vseeno me zanima - je zgornji postopek pravilen?

2. Podoben problem imam pri dodajanju v nek fajl. Več procesov bo dodajalo
   vrstice v isti fajl. Zamislil sem si nekako takole:

   until mv fajl.txt fajl.txt.tmp ; do sleep 1 ; done
   echo "čira" >> fajl.txt.tmp
   echo "čara" >> fajl.txt.tmp 
   mv fajl.txt.tmp fajl.txt

   Bo to v redu? V datoteki fajl.txt bi želel vedno imeti zaporedje
   čira\nčara\nčira\nčara... No, v praksi bo verjetno pisalo kaj drugega,
   npr. hokus-pokus :)

----
sleep 1 tudi meni ni kaj prida všeč, ampak v trenutnem problemu (faksi) me
ne moti kaj prida. Če ima kdo kakšno boljšo idejo, pa kar korajžno :)

LP!

   Matjaž

------------------------------------------------------------
 Matjaz Terpin  
 COMCOM d.o.o.,  Vojkova 4,  5280 Idrija,  Slovenija  
 ++386 (0)65 172 020

 [EMAIL PROTECTED]
------------------------------------------------------------

Reply via email to