Ich wollte letztens von meinem alten NAS eine Platte kopieren mit rsync.
sudo rsync -avXz user@192.168.45.24:/media/sdd/ /media/Sicherung/nas/sdd/ --rsync-path="sudo rsync"
Und dabei kam folgende Fehlermeldung:
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1956) [generator=3.5.0-g471e17dc]
Was war da los und welche Dateien sind gemeint? Um das rauszufinden, erstmal klären, welche Dateien noch auf dem NAS sind und welche nur auf dem Sicherungsrechner:
NAS im Ordner /media/sdd:
find . -type f > NAS-sdd.txt
Und auf dem Rechner Sicherung im Ordner /media/Sicherung/nas/sdd/:
find . -type f > Sicherung-sdd.txt
Diese Dateien sind nicht geordnet, wie man sich einfach mit head -1 NAS-sdd.txt ansehen kann. Damit ist diff erstmal raus.
Aber wir sind auf Linux und da gibt's für was alles eine Lösung:
comm -3 <(sort NAS-sdd.txt) <(sort Sicherung-sdd.txt)
Ordnet uns die Zeilen und zeigt uns gleich, welche nur auf dem NAS vorhanden sind, was ungefähr so aussah:
/home/user/bilder/tr�bes-wetter.jpg
Was so viel bedeutete, dass mein altes System auf CP850 und mein neues auf UTF-8 lief. Jetzt musste nur noch rsync beigebracht werden, dass es die Zeichensätze mitübersetzte:
sudo rsync -avXzin kowo@192.168.0.247:/media/sda/data/book/Zeichnen/ /mnt/3gig/Sicherung/nas/sda/data/book/Zeichnen/ --rsync-path="sudo rsync" --iconv=UTF-8,CP850
Und fertig.