rsync in polomljena pipa
Pred kratkim sem si kupil še tretji NAS. Tudi tokrat Synology, le da je diskovno švohnejši - DS213j.
Moj začetni namen je bil, da bi ga uporabljal za razna testiranja in preskušanja firmware-ov, hekanja in podobnih telovadb, ki mejijo na blaznost. Zato sem vanj vtaknil 2 stara diska (300GB in 500GB) ter ju združil v en volume v RAID0 konfiguraciji. Popolnoma brez varnosti, a to niti ni bil namen naprave.
Prva testiranja so pokazala odlične performace - preko 70MB/s pri pisanju preko 1Gbit/s mreže!
Kmalu, pa sem dobil idejo, da ga preselim k bratu in mi bo tam služil, kot oddaljena backup lokacija, hkrati pa bi služil še kot vse ostalo iz prvotnega plana. Za tretji backup bi to moralo zadostovati!
In sem se lotil priprav:
- kreiral sem ustrezne uporabnike
- uredil mape v skupni rabi
- omogočil rsync (to naredimo z vklopom Network backup v Control Panel)
- omogočil ssh
- uredil pravice in popravil konfiguracije ssh za vse uporabnike
(malce več dela, ki zahteva izvajanje ukazov preko ssh in editiranje /etc/passwd ter /etc/ssh/sshd_config)
Nato sem zadevo takoj preveril iz prve NAS naprave z ukazom:
rsync -av -O -e "ssh -i /volume1/homes/blaz/.ssh/rsync-key" --delete /volume1/homes/blaz/Documents/ blaz@backupNAS:/volume1/homes/blaz/Documents/
Začuda sem dobil naslednjo napako:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync error: error in rsync protocol data stream (code 12) at io.c(1662) [sender=3.0.9]
Šesti čut mi je rekel, da naj poskusim še z admin uporabnikom in glej ga zlomka, z njim je zadeva delovala!
Ker nisem imel časa nadaljevati, sem za nekaj dni vse skupaj pustil in na težavo celo malo pozabil. Ko pa sem se vrnil, da bi dokončal začeto, nikakor nisem mogel usposobiti rsync-a, da bi kopiral podatke pod mojo prijavo. Zadeva je delovala zgolj z admin prijavo.
Guglanje po opisu napake mi tokrat ni dalo uporabnega rezultata, zato sem poskušal s spreminjanjem iskalnih pojmov. A vse zaman! Že sem pomislil, da je nekaj narobe z rsync-om ali z mojo mrežo. Vendarle pa nisem odnehal!
Ko sem se tako prebijal skozi gore Googlovih odgovorov, sem naletel na zanimiv zapis, kjer Jesper trdi, da je potrebno v nastavitvah map v skupni rabi (Contol Panel > Shared Folder > homes > Privilege setup) zgolj obkljukati RW pravice na mapi homes za uporabnika, ki namerava izvajati prepisovanje.
Takoj, ko sem te pravice vklopil, je zadeva delovala tudi z mojo prijavo!
Vendarle pa ima vklop RW pravic na mapi homes tudi slabo plat. Mapa homes je namreč mapa v kateri imajo vsi uporabniki svoje domače mape z zasebnimi podatki. Dodajanje RW pravic določenemu uporabniku mu omogoča vpogled v vsebino zasebnih map. V kolikor imamo na sistemu tako konfiguracijo moramo na to biti pozorni (najbolje je kreirati posebnega uporabnika, s katerim izvajamo zgolj varnostno kopiranje).
V mojem primeru se mi s tako malenkostjo ni bilo treba ukvarjati. K sreči!