Hallo,
wenn ich meinen Windows-Fileserver sichern möchte, habe ich ein Problem mit dort abgelegten Symlinks.
Ich bekomme es nicht hin, dass die einfach kopiert werden.
Das Backup lasse ich unter Linux mit rsync ausführen.
Dazu mounte ich die Freigabe des Windows-Fileservers in einen lokalen Ordner des Linux-Rechners.
sudo mount.cifs -o iocharset=utf8,ro,username=Administrator,password=geheim //WinServer/Freigabe/ /volume1/admin/mount
Dann starte ich rsync.
rsync -rtlDW --stats --log-file="/volume1/admin/log/rsynclog.txt" --link-dest=/volume1/Backup/1 /volume1/admin/mount/ /volume1/Backup/0
Im Log von rsync erhalte ich u.a. diese Meldungen:
rsync: send_files failed to open "/volume1/admin/mount/Ablage/EineMac.app/Contents/Frameworks/Dings Framework.framework/Resources": Operation not supported (95)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
In diesem Fall ist "Resources" ein Symlink.
(Die Windows-Quelle mit ntfs, das Linux-Ziel ist mit ext4 formatiert.)
Wenn ich unter Windows ein
dir absetze
dir "\\WinServer\Freigabe\Ablage\EineMac.app\Contents\Frameworks\Dings Framework.framework"
erhalte ich diese Ausgabe:
27.10.2017 08:19 <SYMLINK> Resources [Versions\Current\Resources]
Den relativen Pfad "Versions\Current\Resources" gibt es so nicht.
Es gibt aber "Versions\A\Resources\*.*"
"Current" im Unterordner "Versions" ist ein weiterer Symlink: 22.09.2017 08:23 <SYMLINK> Current [A]
Aber egal, mich interessiert nicht, ob die vorhandenen Symlinks dort funktionieren oder nicht.
Zu Symlinks und rsync habe ich das hier gefunden:
-l = --links = copy symlinks as symlinks
-L = --copy-links = transform symlink into referent file/dir
Da ich nicht die verlinkten Dateien/Ordner kopieren möchte, wenn der Backup-Vorgang auf einen Symlink trifft, sondern einfach nur den Link kopieren möchte und es mir dabei egal ist, ob der funktioniert oder "broken" ist, schein mir
-L die falsche Option zu sein.
rsync mit oder ohne der Option
-l auszuführen, macht aber leider keinen Unterschied.
Ich vermute daher, dass der Fehler schon an früherer Stelle zu suchen ist, also beim Mount oder schon beim Windows-Server.
Versuche ich diesen Symlink "Resources" übers Netzwerk vom Linux-Rechner (aus dem gemounteten Pfad) auf meinen Windows-PC zu kopieren, kommt diese Meldung:
Fehler 0x80070032: Die Anforderung wird nicht unterstützt.
Resources
Typ: Datei
Größe: 0 Bytes
Versuche ich diesen Symlink "Resources" übers Netzwerk vom Windows-Server auf meinen Windows-PC zu kopieren, kommt diese Meldung:
Fehler 0x800705B7: Der symbolische Link kann nicht verfolgt werden, da der Linktyp deaktiviert ist.
Resources
Typ: .symlink
Größe: 0 Bytes
Bei der Suche nach den genannten Fehlermeldungen und -nummer habe ich nichts gefunden, was mir geholfen hat, mein Problem zu lösen oder zumindest mal zu verstehen was es ist und wo es eigentlich liegt.
Wie gesagt geht es mir um ein reines Backup der Dateien des Fileservers und dazu gehören auch die Symlink-"Dateien".
Ohne die wäre das Backup nicht vollständig und das Log voller Fehlermeldungen.
Die Symlinks auf dem Fileserver erfüllen dort keine Funktion, sondern sind dort nur abgelegt, weil sie zu Projekten gehören, die auf dem Fileserver gelagert werden
Gruß Frank