rsync von PC auf gemountete DS funktioniert nicht

Status
Für weitere Antworten geschlossen.

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Auf der DS habe ich das Verzeichns Sicherung1 angelegt und als gemeinsamen Ordner freigegeben. Zugriff hat nur die Gruppe Sicherung (lesen und schreiben) der nur user und admin angehören. Der Ordner ist in /etc/fstab dauerhaft eingebunden:

//IP_DER_DS/Sicherung1 /media/NAS_Sicherung1 cifs credentials=/home/user/.smbcredentials,uid=1000,gid=1000 0 0

Ich kann auch mit Delphin problemlos auf dieses Verzeichnis zugreifen, auch Dateien und Verzeichnisse erstellen und löschen.

Nun versuche ich mit dem Script rsync_test Daten zwischen meiner lokalen HD und dem freigegebenen Verzeichnis auf der DS zu synchronisieren.

#!/bin/sh
rsync -avPb --backup-dir=/media/NAS_Sicherung1/rsync_backup/ --delete /media/Daten/rsync-test /media/NAS_Sicherung1/

Offenbar kann rsync das Verzeichnis auf der DS erstellen aber nicht die Attribute ändern. Auch eindeutige temporäre Datei können im neuen Verzeichnis nicht erstellt werden. Tatsächlich ist das neu erstelle Verzeichnis leer und hat auch nicht die Attribute (Zeit) von der Quelle übernommen (failes to set times). Wenn ich aber mit der File Station gucke, ist es offenbar ordentlich von user erstellt worden.

user@rechner:~$ ./rsync_test
building file list ...
4 files to consider
rsync-test/
rsync: failed to set times on "/media/NAS_Sicherung1/rsync-test": Operation not permitted (1)
rsync-test/.d3lphinview
22 100% 0.00kB/s 0:00:00 (xfer#1, to-check=2/4)
rsync-test/testfile1.txt
42 100% 41.02kB/s 0:00:00 (xfer#2, to-check=1/4)
rsync-test/testfile2.txt
103 100% 100.59kB/s 0:00:00 (xfer#3, to-check=0/4)
rsync: mkstemp "/media/NAS_Sicherung1/rsync-test/..d3lphinview.j6j4G4" failed: Permission denied (13)
rsync: mkstemp "/media/NAS_Sicherung1/rsync-test/.testfile1.txt.NELPLT" failed: Permission denied (13)
rsync: mkstemp "/media/NAS_Sicherung1/rsync-test/.testfile2.txt.6p2CQI" failed: Permission denied (13)
rsync: failed to set times on "/media/NAS_Sicherung1/rsync-test": Operation not permitted (1)

sent 474 bytes received 92 bytes 1132.00 bytes/sec
total size is 167 speedup is 0.30
rsync error: some files could not be transferred (code 23) at main.c(977) [sender=2.6.9]

Wenn ich unmittelbar im Anschluss den Befehl noch einmal ausführe, werden die Dateien problemlos in das im ersten Durchlauf erstellte Verzeichnis kopiert.

user@rechner:~$ ./rsync_test
building file list ...
4 files to consider
rsync-test/
rsync-test/.d3lphinview
22 100% 0.00kB/s 0:00:00 (xfer#1, to-check=2/4)
rsync-test/testfile1.txt
42 100% 41.02kB/s 0:00:00 (xfer#2, to-check=1/4)
rsync-test/testfile2.txt
103 100% 100.59kB/s 0:00:00 (xfer#3, to-check=0/4)

sent 474 bytes received 92 bytes 1132.00 bytes/sec
total size is 167 speedup is 0.30

Nun habe ich auf der Quelle eine Datei verändert und eine hinzugefügt, es müsste also im Ziel eine hinzugefügt und eine ersetzt werden und von letzterer ein Backup in einem anderen Verzeichnis der DS erstellt werden.

user@rechner:~$ ./rsync_test
building file list ...
6 files to consider
rsync-test/
rsync-test/testfile1.txt
38 100% 0.00kB/s 0:00:00 (xfer#1, to-check=3/6)
rsync-test/testfile1.txt~
42 100% 41.02kB/s 0:00:00 (xfer#2, to-check=2/6)
rsync-test/testfile3.txt
22 100% 21.48kB/s 0:00:00 (xfer#3, to-check=0/6)
rsync: make_bak_dir mkdir "/media/NAS_Sicherung1/rsync_backup/rsync-test" failed: Permission denied (13)
rsync: keep_backup failed: "/media/NAS_Sicherung1/rsync-test/testfile1.txt" -> "/media/NAS_Sicherung1/rsync_backup/rsync-test/testfile1.txt": Permission denied (13)
rsync: stat "/media/NAS_Sicherung1/rsync_backup/rsync-test/testfile1.txt" failed: No such file or directory (2)

sent 437 bytes received 92 bytes 1058.00 bytes/sec
total size is 227 speedup is 0.43
rsync error: some files could not be transferred (code 23) at main.c(977) [sender=2.6.9]

Das Verzeichnis /media/NAS_Sicherung1/rsync_backup/ wurde zwar erstellt, obwohl die Meldung etwas anderes vermuten lässt, blieb aber leer. Im Verzeichnis /media/NAS_Sicherung1/rsync-test/ sind alle Dateien so, wie ich es erwartet habe.

Nun habe ich wieder eine Datei in der Quelle verändert und siehe da das Backup-Verzeichnis wurde zwar erstellt aber die Zeit nicht angepasst und es blieb auch leer.

user@rechner:~$ ./rsync_test
building file list ...
7 files to consider
rsync-test/
rsync-test/testfile3.txt
36 100% 0.00kB/s 0:00:00 (xfer#1, to-check=1/7)
rsync-test/testfile3.txt~
22 100% 21.48kB/s 0:00:00 (xfer#2, to-check=0/7)
rsync: failed to set times on "/media/NAS_Sicherung1/rsync_backup/rsync-test": Operation not permitted (1)
rsync: keep_backup failed: "/media/NAS_Sicherung1/rsync-test/testfile3.txt" -> "/media/NAS_Sicherung1/rsync_backup/rsync-test/testfile3.txt": Permission denied (13)
rsync: stat "/media/NAS_Sicherung1/rsync_backup/rsync-test/testfile3.txt" failed: No such file or directory (2)

sent 359 bytes received 70 bytes 858.00 bytes/sec
total size is 263 speedup is 0.61
rsync error: some files could not be transferred (code 23) at main.c(977) [sender=2.6.9]

Erst als ich jetzt noch einmal eine Datei in Quelle änderte konnten die Backup-Dateien im bereits vorhandenen Verzeichnis erstellt werden.

user@rechner:~$ ./rsync_test
building file list ...
7 files to consider
rsync-test/
rsync-test/testfile3.txt
53 100% 0.00kB/s 0:00:00 (xfer#1, to-check=1/7)
rsync-test/testfile3.txt~
36 100% 35.16kB/s 0:00:00 (xfer#2, to-check=0/7)

sent 390 bytes received 70 bytes 920.00 bytes/sec
total size is 294 speedup is 0.64

Der rsync-Daemon auf der DS (Netzwerksicherungsdienst) ist übrigens aktiviert. Ich hatte ja gehofft, das es daran liegt aber... :(
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Wenn ich das richtig sehe, machst du aber kein remote-Backup, sondern ein local-Backup auf ein remote-gemoutete Platte. Hierfür brauchst übrigens kein rsync --daemon.

Versuch doch mal ein richtiges remote rsync (also ohne mount der DS) vielleicht sind dann die Probleme weg.

Itari
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Was meinst Du mit remote rsync?

Ja, ich wollte das Backup von meinem PC aus mit Anacron starten. Wenn ich das Backup von der DS starte, was passiert dann, wenn der PC nicht läuft, wenn das Backup startet?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Was meinst Du mit remote rsync?

Kein mount, sondern den rsync in der Netzwerk-Notation, z.B.

DS: rsync --daemon plus ein Module-Eintrag in der /etc/rsyncd.conf

PC: rsync -aHKxvu --del '/media/Daten/rsync-test' 'IP_DER_DS::backup'

Itari
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Entschuldigung aber das verstehe ich nicht. :eek:

Wenn ich die Synchronisation von der DS aus starte, was passiert dann, wenn der PC nicht läuft? Ist das kein Problem?

Den rsync --daemon auf der DS habe ich ja schon gestartet. Was soll ich in der /etc/rsyncd.config eintragen? Meine /etc/rsyncd.config sieht derzeit so aus:

#motd file = /etc/rsyncd.motd
#log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
use chroot = no
[NetBackup]
path = /var/services/NetBackup
comment = Network Backup Share
uid = root
gid = root
read only = no
list = yes
charset = utf-8
auth users = root
secrets file = /etc/rsyncd.secrets

Und auf meinem PC soll ich rsync -aHKxvu --del '/media/Daten/rsync-test' 'IP_DER_DS::backup' starten, richtig? Die <'> Zeichen dienen nur der Lesbarkeit oder soll ich die auch angeben?

Könnten meine Probleme vielleicht auch daran liegen, dass die Quelle derzeit fat32 und das Ziel ext3 formatiert ist? (bin ich erst wegen -x drauf gekommen :eek: )
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Entschuldigung aber das verstehe ich nicht. :eek:

Wenn ich die Synchronisation von der DS aus starte, was passiert dann, wenn der PC nicht läuft? Ist das kein Problem?

Wieso gehst du davon aus, dass die Synochronisation von der DS gestartet wird? Natürlich wird die vom PC aus gestartet. Der einzige Unterschied ist, dass es für den rsync keine lokale sondern eine remote Synchronisation ist.

Den rsync --daemon auf der DS habe ich ja schon gestartet. Was soll ich in der /etc/rsyncd.config eintragen?

Da ich dein Sicherungsverzeichnis auf der DS ja nicht kenne, hab ich einfach mal /volume1/NASsicherung (musste natürlich anlegen) angenommen:

[backup]
path = /volume1/NASsicherung
uid = root
gid = root
read only = no
list = yes
charset = utf-8



Und auf meinem PC soll ich rsync -aHKxvu --del '/media/Daten/rsync-test' 'IP_DER_DS::backup' starten, richtig? Die <'> Zeichen dienen nur der Lesbarkeit oder soll ich die auch angeben?

Die <'> immer angeben, damit eventuelle Leerstellen im Pfad nicht zu einem Problem werden.

Könnten meine Probleme vielleicht auch daran liegen, dass die Quelle derzeit fat32 und das Ziel ext3 formatiert ist? (bin ich erst wegen -x drauf gekommen :eek: )

Probiere es mal mit dem -x aus und mal ohne ...

Itari
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
GROSSARTIG! :D Jetzt funktioniert es! :D Ich weiss gar nicht, wie ich Dir danken soll! :D

Darauf wäre ich nie alleine gekommen: ich speichere also in der rsync-Configurationsdatei /etc/rsyncd.conf auf der DS die Parameter und starte das Backup dann von meinem PC mit Aufruf dieser Parameter! Herrje!

Ich habe ja alle möglichen Quellen und Wikis durchsucht aber diese Vorgehensweise habe ich nirgends gefunden (leider traue ich mir auch nicht zu, einen entsprechenden Artikel in einem Wiki zu verfassen).

Jetzt muss ich mir nur noch die rsync-Parameter genauer anschauen, denn noch habe ich nicht verstanden, warum Du -K vorgeschlagen hast, denn eigentlich sollen die Links doch nur kopiert und ihnen nicht gefolgt werden...

Und -u verstehe ich bei einem Backup auch nicht, schliesslich sollen dort die Daten ja genau der Quelle entsprechen...
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
zu -u:

Du hast auf der DS eine Datei im Backup, die jünger ist als auf dem PC (wie auch immer sie dahin gekommen ist; vielleicht hast du sie geändert). Dann wird durch -u die ältere Datei auf dem PC nicht die jüngere überschreiben.

zu -K:

Du hast einen symbolische Link eines Verzeichnisses auf ein anderes Verzeichnis auf dem PC (jaja, so etwas gibt es sogar unter NTFS - unter FAT32 halt nicht). Mit -K wird der symbolische Link als symbolischer Link kopiert; ohne -K wird das Ganze einfach nochmals kopiert (im Grunde hast es dann 2 x auf der DS). Kannst natürlich auch gerne weglassen.

Ich habe diese Geschichte (nicht für den PC, aber für die DS, wenn sie auf eine 2. DS sichern soll), im AdminTool drin. Kannst dir ja auch bei Gelegenheit anschauen.

Itari

PS. Sammel mal erst Erfahrungen mit dem rsync; dann reden wir noch mal über den Wiki-Eintrag ;)

Doku: http://linux.die.net/man/1/rsync
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
zu -K:

Das habe ich offenbar falsch verstanden, denn ich dachte, wenn man diese Option nicht nimmt, wir ein symbolischer Link als symbolischer Link kopiert...

zu -u:

An anderer Stelle las ich von Dir, dass Du rsync zweimal in entgegengesetzter Richtung laufen lässt, also von PC auf DS mit -u und dann noch einmal von DS auf PC mit -u, habe ich das richtig verstanden? Coole Alternative zu unison...

Muss ich dafür in /etc/rsyncd.conf mehrer Module definieren? Wie?

[backup1]
path = /volume1/NASsicherung
uid = root
gid = root
read only = no
list = yes
charset = utf-8

[backup2]
path = /media/Daten
uid = root
gid = root
read only = no
list = yes
charset = utf-8

und dann aufrufen mit

rsync -aHKxvu --del '/media/Daten/rsync-test' 'IP_DER_DS::backup1'
rsync -aHKxvu --del 'IP_DER_DS::backup2' '/media/Daten/rsync-test'

?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Das -k (kleine K) löst den symb. Link auf; das -K (große K) behält ihn bei

-k, --copy-dirlinks
This option causes the sending side to treat a symlink to a directory as though it were a real directory. This is useful if you don't want symlinks to non-directories to be affected, ...

-K, --keep-dirlinks
This option causes the receiving side to treat a symlink to a directory as though it were a real directory, but only if it matches a real directory from the sender. Without this option, the receiver's symlink would be deleted and replaced with a real directory.

Zweimal rsync in gegensetzte Richtung wäre das Synchronisieren und da ist dann das -u unverzichtbar. Dafür brauchst auch nur einen Eintrag (Module) in der /etc/rsyncd.conf, denn das Verzeichnis auf dem remoten rsync-Daemon soll dann ja das selbe sein (und es hat nicht mit den verzeichnissen auf deinem PC zu tun). Also:

Rich (BBCode):
rsync -aHKxvu --del '/media/Daten/rsync-test' 'IP_DER_DS::backup1'
rsync -aHKxvu --del 'IP_DER_DS::backup1' '/media/Daten/rsync-test'

Itari
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Vielen Dank für Deine Geduld und Hilfsbereitschaft.

Kannst Du mir vielleicht noch in /etc/rsyncd.config die Parameter read only = no und list = yes erklären?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
list = yes heisst, dass das Modul angezeigt wird wenn ein Client nach den Modulen des Servers fragt
read only = yes dürfte ja eigentlich selbsterklärend sein. Du kannst von diesem Modul nur lesen und nicht reinschreiben. Mehr (eigentlich alles) zu den Parametern findest du bei http://samba.anu.edu.au/ftp/rsync/rsyncd.conf.html
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Vielen Dank.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat