Pyetje - Pergjigje

gurax

Pan ignoramus
Linux command line util.

Ka nje direktori /path1/dir1 qe permban shume direktori dhe files brenda vetes. Here pas here permbajtja e saj sinkronizohet ne nje direktori tjeter, qe eshte /path2/dir2 duke dhene nje rezultat te formes /path2/dir2/dir1

Gjate aktivitetit te ndryshem, ashtu sic shtohen direktori dhe files tek /path1/dir1 gjithashtu edhe mund te fshihen direktori dhe files. Por kjo nuk reflektohet ne kopjen e saj tek /path2/dir2/dir1.

Si mund te realizohet qe ato qe fshihen nga /path1/dir1 te fshihen edhe tek /path2/dir2/dir1 ?
 

gurax

Pan ignoramus
Solved.

Code:
#!/bin/bash
cd /path1
find dir1 -type d > /tmp/storedirs
# Nese /path2/dir2 eshte ne disk tjeter dhe duhet aksesuar ...
#mount /dev/disk2 /path2/dir2
cd /path2/dir2
find dir1 -type d > /tmp/storecopydirs
cd /tmp
sort storedirs > storedirs.sorted
sort storecopydirs > storecopydirs.sorted
diff storedirs.sorted storecopydirs.sorted | grep ">" | awk -F "> " '{print $2}'| awk -F "/" '{print NF"::"$0}' > foremoval-depthed
echo "#!/bin/bash" > /path2/dir2/ditchem.sh
sort -n -r foremoval-depthed | awk -F "::" '{print "rm -rf " "\47" $2"\47"}' >> /path2/dir2/ditchem.sh
sync
# Cojme mounts ne gjendjen e meparshme nese duhet...
# umount /path2/dir2
exit 0

Pas kesaj, do te jete formuar nje file i ri, /path2/dir2/ditchem.sh , i cili nese ekzekutohet do te fshije te tera direktorite qe jane ne kopje dhe nuk jane me ne origjinal.
 

gurax

Pan ignoramus
Ne shkrimin #2 kam dhene nje menyre zgjidhje per problemin e shtruar ne shkrimin #1 po nga une vete. Nese ne nje server apo cdo sistem me linux mund gjendemi perpara situates se pershkruar ne shkrimin #1, duke dhene komandat e pershkruara ne shkrimin #2 eshte realizuar ajo qe deshirojme te bejme. Ne fakt, formohet nje skedar i cili kur ekzekutohet fshin nje nga nje te tera direktorite e teperta ne kopje qe s'jane ne origjinal, duke filluar nga nivelet me te thella e duke perfunduar me nivelet me te aferta.
 

gurax

Pan ignoramus
Sot u kujtova qe s'e kisha bere kete proces kishte dy muaj ne sistemin e implementuar (Per arsye sigurie preferoj ta jap manualisht nje komande qe fshin te dhena, dhe jo te jete e automatizuar).
Rezultati... u fshine rreth 250 000 direktori qe nuk duheshin me dhe kishin mbetur kopje te vjetra te backup!
 

The decatur

Perjashtuar nga Albforumi
Sot u kujtova qe s'e kisha bere kete proces kishte dy muaj ne sistemin e implementuar (Per arsye sigurie preferoj ta jap manualisht nje komande qe fshin te dhena, dhe jo te jete e automatizuar).
Rezultati... u fshine rreth 250 000 direktori qe nuk duheshin me dhe kishin mbetur kopje te vjetra te backup!
Si mund ta ruaj ip-adress time kur jam ne chat qe te tjeret mos te ma zbulojne?
 

Hank

Valoris scriptorum
Ipne tende e shohin vetem IRCops. Ne cdo rast ata mund ta shohin IPne tende. Nese e ke problem duhet te gjesh ndonje proxy dhe te lidhesh nepermjet nje proxy e me pas ata do shohin IPne e Proxyt
 

The decatur

Perjashtuar nga Albforumi
Ipne tende e shohin vetem IRCops. Ne cdo rast ata mund ta shohin IPne tende. Nese e ke problem duhet te gjesh ndonje proxy dhe te lidhesh nepermjet nje proxy e me pas ata do shohin IPne e Proxyt
PO ku ta gjej kete?
ti e di mire se per ca e kam fjalen.
e kam fjalen tek ai chati i shqiperise #albania
 

Dreamer

Under the Dome
Nqs kuptova mire pyetjen...
cd /path1/dir1; find .-type d -maxdepth 1-mindepth 1-exec rm -rf /path2/dir2/{} \;
 

gurax

Pan ignoramus
Jo tamam.
Kjo zgjidhje kerkon 'type d', direktorite, qe gjenden ne dir1 dhe cfare gjen nen ate nivel fillestar te pare (/path1/dir1) i fshin me rrenje e me dhemballe nga /path2/dir2. Por nderkohe ngelen skedaret, si dhe duhet patur parasysh qe neper nendirektori mund te kete skedare dhe direktori qe na duhen. Shtimi i skedareve te rinj dhe direktorive te reja nen /path1/dir1 eshte sporadik, pa asnje rrregull dhe nga njerez te ndryshem. Po keshtu eshte edhe fshirja. Ideja eshte qe nese fshihet nje skedar apo edhe direktori diku nga /path1/dir1, kudoqofte thelle ne nen-nivele, te fshihet ai dhe vetem ai skedar apo nendirektori edhe nga /path2/dir2, duke lene cdo gje tjeter te paprekur.
 
Last edited:

gurax

Pan ignoramus
shtese: hmmm... edhe zgjidhja e shkrimit numer 2 merret vetem me direktorite dhe injoron skedaret, te pakten ata qe jane krijuar ne nivelin fillestar.
Sidoqofte, zgjidhja e ofruar ne shkrimin 2 ka nje te mire qe mund te verifikohet nje per nje cfare do te fshihen perpara se keto te fshihen, dhe te behen korigjime, pasi fshirja vete NUK behet nga script me lart, por nga script qe ai gjeneron sa here qe ekzekutohet (ditchem.sh). Sepse gjithmone, gjithmone, gjithmone, duhet te mendohemi disa here perpara se te fshijme dicka ne nje server. There is no going back after a rm -rf in a server holding financial data or medical records. Tread extremely lightly!
 
Top