Ich verwende rsync, um ein Backup zu erstellen. Dies ist meine Befehlszeile:
sudo rsync -avuh --delete --stats --log-file=$LOGFILE --exclude-from $EXCLUDE $SOURCE $DEST
Das funktioniert größtenteils. Heute bin ich jedoch auf ein Szenario gestoßen, in dem ich einfach die Attribute einer Datei geändert habe, um sie ausführbar zu machen. Aus Neugierde habe ich rsync ausgeführt, aber es wurde nicht angezeigt, dass die Datei an das Ziel kopiert wurde.
Der Dateiinhalt ist genau derselbe und dies ist die statistische Ausgabe:
Datei: „Projects/simpleFlash.py“ Größe: 706 Blöcke: 8 IO Block: 4096 reguläre Datei Gerät: 802h/2050d Inode: 56961 Links: 1 Zugriff: (0755/-rwxr-xr-x) Uid: ( 1000/ pi) Gid: ( 1000/ pi) Zugriff: 26.03.2015 17:13:29.970428613 -0400 Ändern: 2015-02-17 00:16:44.558033934 -0500 Änderung: 2015-05-19 13:53:28.401164123 -0400 Geburt: -
Die mtimes sind gleich, aber die ctime ist anders. Wie bringe ich rsync dazu, die Änderungen der Dateiattribute für Dateien mit derselben mtime zu prüfen?
Spezifikationen: rsync 3.0.9 FS: ext4 Linux-Kernel: 3.18.11+
Antwort1
rsync(1)
Wie in der Manpage angegeben :
Rsync findet Dateien, die übertragen werden müssen, mithilfe eines „Quick-Check“-Algorithmus (standardmäßig), der nach Dateien sucht, deren Größe oder letzte Änderungszeit geändert wurde. Alle Änderungen an den anderen beibehaltenen Attributen (wie von Optionen angefordert) werden direkt an der Zieldatei vorgenommen, wenn der Quick-Check anzeigt, dass die Daten der Datei nicht aktualisiert werden müssen.
Das heißt, solange Sie rsync
die Attribute übertragen, werden sie aktualisiert. Sie sagten, das fehlende Attribut seien Berechtigungen, also fügen Sie der Befehlszeile -p
oder hinzu, und schon kann es losgehen.--perms