[ Goran Rakić @ 23.10.2002. 20:20 ] @
Imam 6 win mašina koje hoću da backupujem preko linux-a sa bash skriptom u cron-u. Destinacija treba da bude na jednoj win mašini, a treba mi tačna, nekompresovana kopija.

Prvo sam preko smbfs-a montirao destinaciju, a onda jedan po jedan (svaki share moram odvojeno) i pomocu "cp -Ru" kopirao direktorijume na destinaciju.

Zbog -u flag-a, ovo kopira samo promenjene fajlove, ali imam problem. Kako da saznam da li je neki fajl obrisan sa izvora, kako bih mogao da ga uklonim i sa destinacije, a da pritom pazim da ako je izvor nedostupan (komp nije upaljen) da ne pobrisem sve sa destinacije i unistim backup. Varijanta da prvo izbrisem sve sa destinacije ne pali, jer se moze desiti da u toku backup-a neko ugasi (malo verovatno, ali moguce) kompjuter sa koga se skida backup i time izgubim sve. Takodje postoji varijanta da neko iskljuci kompjuter koji je destinacija.

Evo sta sam ja napisao:

Code:

mount -t smbfs //odisej/odisej\ 2 -o username=user,password=pass /mnt/mreza/odisej/odisej2

mount -t smbfs //fimaks1/FIMAKS1\ 1 -o username=user,password=pass /mnt/mreza/fimaks1/fimaks11
cp -Ru /mnt/mreza/fimaks1/fimaks11/Akcionar/* /mnt/mreza/odisej/odisej2/backup_test/fimaks1/Akcio$
cp -Ru /mnt/mreza/fimaks1/fimaks11/Documents\ and\ Settings/Fimaks/Desktop/* /mnt/mreza/odisej/od$
cp -Ru /mnt/mreza/fimaks1/fimaks11/Documents\ and\ Settings/Fimaks/My\ Documents/* /mnt/mreza/odi$
umount /mnt/mreza/fimaks1/fimaks11

 # ovo radim za sve share-ove na 6 win masina

umount /mnt/mreza/odisej/odisej2


Kako da se prepoznam koji fajl je obrisan na izvoru i da ga pre nego sto krenem kopiranje obrisem i na destinaciji, pri tome cuvajuci ostale fajlove na destinaciji. Linux masina je stalno upaljena, a ostale nisu pa trebam voditi racuna i sta kada neki kompjuter bude ugasen ili u toku rada backup-a se ugasi.
[ random @ 23.10.2002. 20:30 ] @
Probaj da koristiš rsync.
[ Goran Rakić @ 23.10.2002. 20:46 ] @
rsync -r -u --delete-after --force $IZVOR $CILJ

To bi trebalo da uradi update $izvora na $cilj-u rekurzivno i da obrise nakon update-a sa $cilja ono sto nema na $izvor-u pri tome ne vodeci racuna da li je dir ili fajl koji treba da obrise prazan ili ne. Međutim to ne uradi, već samo doda nove fajlove.

PS caka je izgleda u redosledu jer "rsync --delete -z -r -u" radi kao što i treba