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]
------------------------------------------------------------