rsync arbeitet nicht rekursiv (trotz option -a)

  • Hallo zusammen,


    ich habe mir gerade ein Backskript zusammen gebastelt welches auf rsync beruht.


    Zunächst baue ich mir den rsync-Befehl zusammen, der dann wie folgt aussieht:


    Code
    /usr/bin/rsync -av --delete --delete-excluded --no-inc-recursive --files-from=/home/hightower2004/bin/backup_include --exclude-from=/home/hightower2004/bin/backup_exclude / /backup/backup.0


    In der include Datei steht:

    Code
    /home/hightower2004/Documents/
    /root/Documents/


    In der exclude Datei steht:

    Code
    Archiv/
    demo/


    Trotzdem führt das ganze zu folgender Filelist:

    Code
    <hier stehen die files aus /home/hightower2004/Documents/>
    root/
    root/Documents/
    root/Documents/Picture.png
    root/Documents/WLAN-Text.txt
    root/Documents/Text.txt
    root/Documents/Screenshots/
    root/Documents/Directory/


    sowohl die Verzeichnisse root/Documents/Screenshots/ als auch root/Documents/Directory/ sind nach dem Backup leer (gleiches gilt für die Unterverzeichnisse in /home/hightower2004.


    Hat jemand eine Idee, was da falsch läuft? Wenn ich in der include-Datei in der dem Slash ein Sternchen setze, findet rsync angeblich die Datei nicht.

    Code
    rsync: link_stat "/root/Documents/*" failed: No such file or directory (2)


    Ich habe rsync in der Version 3.0.4. und führe das Script als root aus.


    Danke schon mal im voraus.

    _T_
    HO2
    IW0
    GE0

    HR4 (konvertierte 2019 nach 8 1/2 Jahren von Android zu iOS)  iPhone 12 Pro  Apple Watch Series 8 45mm GPS + LTE  MacBook Air M2 

  • Schau dir mal das Kapitel ueber die include/exclude pattern rules in der man-page an. Includes beginnen mit einem "+", excludes mit einem "-" und es gibt da noch einige Details zu beachten. Ich schreibe beides normalerweise in eine einzige Datei, ist einfacher zu handhaben.

  • Ich habe zwar auch versucht mit + und - in den in/exclude Dateien zu arbeiten, klappte aber auch nicht. rsync kam auf die Idee "/+ /root/Documents" sichern zu wollen.


    Aber die Lösung steht in Zeile 1137 der man-page:

    Zitat

    (keep in mind that -r needs to be specified explicitly with --files-from, since it is not implied by -a).


    obwohl etwas weiter oben (Zeile 269) steht:

    Zitat

    -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)


    erst es in Zeile 467 steht:

    Zitat

    -a, --archive
    This is equivalent to -rlptgoD. It is a quick way of saying you want recursion and want to preserve almost everything (with -H being a notable omission). The only exception to the above equivalence is when --files-from is specified, in which case -r is not implied.


    und bei der Erklärung des Parametes -r wird die Option --files-from nicht erwähnt.


    Jetzt rufe ich im Skript rsync mit -arv auf und es klappt.


    harlekyn: Danke für Tipp! :top:

    _T_
    HO2
    IW0
    GE0

    HR4 (konvertierte 2019 nach 8 1/2 Jahren von Android zu iOS)  iPhone 12 Pro  Apple Watch Series 8 45mm GPS + LTE  MacBook Air M2 

  • Noch eine Frage:


    in meinem include-file habe ich folgende Einträge gemacht um die Documents und den Desktop aller Benutzer zu sichern:


    Zitat

    /home/*/Documents/
    /home/*/Desktop/


    doch rsync meint:


    Zitat

    rsync: link_stat "/home/*/Desktop" failed: No such file or directory (2)


    Hat noch jemand eine Idee?

    _T_
    HO2
    IW0
    GE0

    HR4 (konvertierte 2019 nach 8 1/2 Jahren von Android zu iOS)  iPhone 12 Pro  Apple Watch Series 8 45mm GPS + LTE  MacBook Air M2 

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!