ich nutze rsync auf MacOSX für "Langzeitbackups", bei denen quasi nichts gelöscht werden soll, bis das Storage mal voll ist.
Hierzu nutze ich den folgenden Befehl:
rsync -aXvvuc --times --progress -b --suffix=$(date +"backup_vom_%d.&m.%Y_um_%T") /quelle /ziel
Erklärung:
- X - übernimmt die extended attributes für OSX
- u - minimiert den Datentransfer falls einer Datei zur Änderung lediglich etwas angehängt werden muss...
- c - checksum, damit nur Dateien anhand tatsächlich anderen Inhaltes und nicht anhand Zeitstempel neu übertragen werden.
- --times - erhält die Zeitstempel
- -b --suffix(...) bevor eine Datei ersetzt/ etwas angehängt wird, wird von der alten Version ein "Backup" mit dem Namen DATEINAME__backup_vom_DATUM_UHRZEIT angelegt, damit nicht jedes mal ein backupordner angelegt wird...
- vv - verbosity ausführlich (info zu jeder verarbeiteten / verglichenen Datei...) kann auch weggelassen werden...
Grundvoraussetzungen:
- OSX 10.9.1
- RSYNC V 3.0.9
- Laufwerke werden für unser internes Netz via Helios AFP auf Mavericks gemountet.
- Die Freigabe hat im HeliosAdmin als Charset "MacRoman" angegeben.
- Für das Mac Terminal kann man dieses Charset auch wählen.
Problem1:
- Dateinamen mit bestimmten Sonderzeichen können nicht gefunden werden, ich vermute, weil im Mac die Terminal-Charset noch auf UTF-8 (de.DE) steht...
Fragen:
- Weiß jemand sicher, ob das Umstellen der Terminal-Charset reicht, um dieses Problem zu lösen?
- Wenn nicht, wo muss ich noch Änderungen vornehmen??
Problem2:
- Die .DS_Store Dateien werden oft neu gesichert, was bei einer 6-stelligen Anzahl von Verzeichnissen / Subdirectories überflüssig und sinnlos ist.
Fragen:
- Weiß jemand, ob es mit --exclude oder --filter eine Möglichkeit gibt, die ".DC_Store" aus allen unterverzeichnissen vom rsync auszuschließen? Genauer: Wie muss der "--exclude"- oder "--filter" - Parameter dann aussehen??
- Weiter gedacht: wenn mehrere Dateinamen oder -Endungen wie ".eml" auch ausgeschlossen werden sollen, wie funktioniert das mit der Datei dann, die diese beinhaltet? Genauer: Reicht da ein Eintrag ala "*.DS_Store" bzw. "*.eml" je Zeile, um alle auszuschließen, egal in welchem Unterverzeichnis diese liegen??
Dieser Beitrag wurde von Mondragor bearbeitet: 07. Februar 2014 - 12:27