Rsync vom Root ausschließen

Rsync vom Root ausschließen

Ich bin verwirrt wegen des Ausschlusses von rsync.

Ich versuche, alle Dateien zu sichern, die mit / beginnen, aber /media/ /mnt/ /home/files/ und /home/backup ausschließen.

sudo rsync -a \
       --progress \
       --stats \
       --exclude-from=/home/files/ \
       --exclude-from=/media/ \
       --exclude-from=/mnt/ \
       --exclude-from=/home/backup/ \
   / /home/backup

Wird nicht funktionieren.

Am Ende kopiere ich die Dateien nach /home/backup/home/backup/... Ich habe gelesen, dass ich meine Ausschlüsse relativ zu meinem Übertragungsstammverzeichnis schreiben muss, aber ich schätze, wenn / mein Übertragungsstammverzeichnis ist, dann sollte /media/ doch relativ dazu sein, oder?

Antwort1

man rsync

--exclude=PATTERN       exclude files matching PATTERN
--exclude-from=FILE     read exclude patterns from FILE

exclude-from wird verwendet, um auf eine Datei zu verweisen, die die Ordner auflistet, die Sie nicht möchten. Versuchen Sie die Option --exclude

Antwort2

Ihre Syntax ist falsch. Deshalb funktioniert es nicht.

Du sagst:

--exclude-from=/home/backup/

wenn du einfach sagen solltest

--exclude="/home/backup/*"

Außerdem verwenden Sie nicht die

--delete-excluded 

Switch, der die Verzeichnisse synchronisieren kann.

Zu Ihrer Frage am Ende: Ja, in Ihrem Fall geben Sie /als Anfang für rsync an. Wenn Sie "tmp/*"also ausschließen, ist es tatsächlich relativ zu, /also ist es dasselbe wie die Angabe"/tmp/*"

verwandte Informationen