PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rsync und symlinks



faithless
13.09.06, 17:17
hallo linux-gemeinde

habe ein problem mit rsync und dem abgleichen von verzeichnissen in denen sich symlinks befinden.
genauergesagt haben wir da einen mail-server der schon ein paar mal kurz vorm abkratzen war, wesswegen die user im home verzeichnis per symlink von ner anderen platte eingebunden sind.
wenn ich jetzt das gesamte home verzeichnis auf ein backup-modul kopieren möchte kommen je nachdem ob ich das vom mail- oder backup-server mache unterschiedliche fehlermeldungen.

starte ich rsync vom mail_server aus:

rsync -vcrLpogt /home/ backup_server::backuphome
building file list ... rsync: writefd_unbuffered failed to write 4092 bytes: phase "send_file_entry": Broken pipe
rsync error: error in rsync protocol data stream (code 12) at io.c(515)

vom backup_server aus:

rsync -vcrLpogt mail_server::home /var/backup/mail_server/home
receiving file list ... done
"VERZEICHNISSE DIE KEINE SYMLINKS SIND"/
.
.
.

sent 65 bytes received 480 bytes 47.39 bytes/sec
total size is 19588207 speedup is 35941.66
rsync error: some files could not be transferred (code 23) at main.c(1173)

bei zweiter variante wird also trotz dem switch "L" den symlinks nicht gefolgt und nur die "echten"-verzeichnisse aus /home kopiert.

die beiden rechner verwenden leicht unterschiedliche versionen von rsync (2.5.6 und 2.6.6 am backup_server), außerdem verwenden wir am alten reiserfs und am neuen ext3 als filesystem - sollte aber keinen unterschied ausmachen.
habe auch schon probiert am alten die 2.6.6 zu installieren, mit dem effekt, dass er wegen einer inkompatiblem libacl.so.1 herumgemeckert hat, und das POSIX möcht ich nun doch lieber nicht updaten (never touch a running system!).

hat jemand eine idee was ich falsch mache?

lg, joe

torsten_boese
13.09.06, 22:55
Es wird nur der Symlink kopiert... rsync verfolgt die symlinks nicht ...
Ich würde entweder einen Hardlink setzten oder wenn möglich, den anderen datenträger auf dem jetzt home liegt, unter /home mounten.

faithless
14.09.06, 14:59
hi torsten

danke für die antwort. werd es mal mit hardlinks probieren - aber ansich gibt es in rsync den switch -L, der laut manpages symlinks auflöst. funktioniert zb. auch bei den symlinks im /etc verzeichnis. allerdings sind die meisten symlinks dort auch auf unterverzeichnisse des /etc-trees, während meine user in /home auf drei partitionen verteilt sind (wo halt grad noch platz ist) ... ,)

sicherlich nicht ideal, aber lange bleibt das eh nicht mehr so...

ps: scp schafft es ja auch, die symlinks korrekt aufzulösen, und das ohne viel überredungskünste.

liebe grüße,
joe

torsten_boese
14.09.06, 16:11
Es gibt auch noch die Möglichkeit mit mount --bind ein Verzeichnis an einer anderen Stelle im System einzuhängen. Ich hab das schonmal bei einem FTP-Server gemacht um alle Partitionen die ich benutzen wollte und /srv/ftp zu bekommen, ohne die Mountpunkte im System zu verändern. Ich glaube das wäre noch ne gute alternative...