[zurückgestellt] cp/scp SSH Backup

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

[zurückgestellt] cp/scp SSH Backup

Beitrag von joe2017 » 09.09.2020 16:20:30

Hallo Scripter,

ich benötige mal einen Tipp zu cp bzw. scp.
cp kennt den Befehl --parents jedoch kein copy über SSH
scp kennt copy über SSH jedoch kein --parents

Hat jemand eine Idee wie ich das sauber hin bekomme? Ich möchte eigntlich folgenden Befehl ausführen. Das funktioniert auch soweit. Jedoch werden mit scp nur Dateien und keine Ordnerstrukturen kopiert.

Code: Alles auswählen

find /path/ -mtime -1 -exec sudo scp -i /path/to/key {} user@IP:/path/ \;
Mit cp funktioniert die Ordnerstruktur, jedoch nicht das kopieren über SSH

Code: Alles auswählen

find /path/ -mtime -1 -exec sudo cp --parents \{\} /backup/dir/ \;
Zuletzt geändert von joe2017 am 10.09.2020 09:06:25, insgesamt 1-mal geändert.

Benutzeravatar
Tintom
Moderator
Beiträge: 3066
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: cp/scp SSH Backup

Beitrag von Tintom » 09.09.2020 16:28:30

Mit scp -r dir/ geht es nicht?
Zuletzt geändert von Tintom am 09.09.2020 16:37:44, insgesamt 4-mal geändert.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: cp/scp SSH Backup

Beitrag von joe2017 » 09.09.2020 16:33:30

Hi Tintom,

leider nicht. Das habe ich bereits getestet. Hier werden dann auch andere Files die nicht mit "find" gefunden wurden kopiert.
Ich möchte ausschließlich Dateien kopieren die nur ein Tag alt sind. Also ein inkrementelles Tages Backup.

Benutzeravatar
Tintom
Moderator
Beiträge: 3066
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: cp/scp SSH Backup

Beitrag von Tintom » 09.09.2020 16:36:59

Gibt es einen Grund warum du das so lösen willst? Ich würde hier mit rsync ansetzen, wenn nichts dagegen spricht.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: cp/scp SSH Backup

Beitrag von joe2017 » 09.09.2020 16:37:12

Tintom hat geschrieben: ↑ zum Beitrag ↑
09.09.2020 16:28:30
Gibt es einen Grund warum du das so lösen willst? Ich würde hier mit rsync ansetzen, wenn nichts dagegen spricht.
Hier habe ich leider andere Probleme. Ich möchte ausschließlich Dateien kopieren welche heute geänder wurden.
Außer du kennst eien rsync Befehl welchen ich mit find kombienieren könnte.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: cp/scp SSH Backup

Beitrag von joe2017 » 09.09.2020 17:05:51

Ich habe etwas gefunden was jedoch nicht so wirklich funktioniert.
Vielleicht hat einer von euch eine Idee.

Code: Alles auswählen

find /path/ -mtime -1 -exec sudo rsync -avre "ssh -i /path/to/key" {} USER@IP:/backup/dir/ \;
Hier werden jetzt wohl nicht alle Dateien kopiert, jedoch alle Verzeichnisse in welchen eine Datei geändert wurde.
Zumindest sieht es für mich so aus.

Benutzeravatar
Tintom
Moderator
Beiträge: 3066
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: cp/scp SSH Backup

Beitrag von Tintom » 09.09.2020 17:11:58

Nun, rsync ist ein Tool um Datenbestände synchron zu halten. Das bedeutet, die Daten müssen zumindest beim ersten Mal komplett übertragen werden, damit bei den nächsten Aufrufen nur die geänderten Daten übertragen werden.
Wenn das in Ordnung ist, dann kannst du den Ansatz mit find ad acta legen und rsync alles erledigen lassen.
Wenn das nicht in Ordnung ist, dann braucht's ne Alternative.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: cp/scp SSH Backup

Beitrag von joe2017 » 09.09.2020 17:22:09

Diesen Ansatz habe ich aktuell in Verwendung. Jedoch funktioniert das über SSH nicht so ganz. Und zusätzlich werden hierbei Dateien Mehrfach in die Inrementellen Backups gelegt.

Beispiel:
Volles Backup am Mo
Incremental Backup Di-Sa (für jeden Tag einen neuen Ordner)
Ich muss die Incremental Backups mit dem Ordner vom Montag abgleichen.
Somit wird eine Datei die am Dienstag verändert wird die restliche Woche immer wieder gesichert. Das ist unnötig und würde einmal am Dienstag reichen.

Daher suche ich aktuell nach einem anderen Ansatz.

Kann man rsync nicht mit find verknüpfen? Somit würden ebenfalls nur neue Dateien gesichert werden.

Benutzeravatar
Tintom
Moderator
Beiträge: 3066
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: cp/scp SSH Backup

Beitrag von Tintom » 09.09.2020 17:28:05

joe2017 hat geschrieben: ↑ zum Beitrag ↑
09.09.2020 17:22:09
Daher suche ich aktuell nach einem anderen Ansatz.
Nein, dein Ansatz ist schlicht nicht passend.
Es gibt bei rsync die Optionen --link-dest=DIR und --copy-dest=DIR, die legen je nach Wunsch einen Hardlink oder eine Kopie der Datei an für die Daten, die sich nicht verändert haben. Somit werden effektiv nur die Daten übertragen, die sich geändert haben.
Bemühe mal die Forensuche nach rsync und inkrementellen Backups, da gibt es einige Treffer.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: cp/scp SSH Backup

Beitrag von joe2017 » 09.09.2020 17:40:31

Stimmt, es wird ja nur ein Link angelegt. War mein Denkfehler. Aber das funktioniert bei mir irgendwie nicht so richtig über SSH.
Zusätzlich dauert mir dieser Vorgang auch viel zu lange. Die Dateien müssen ja immer mit dem ersten Backup verglichen werden.

Es wäre sinnvoller, wenn einfach nur Dateien mit einem Änderungsdatum von Heute kopiert werden (find /path/ -mtime -1)
Somit müssen andere Dateien erst gar nicht überprüft/verglichen werden. bei Hunderttausenden Dateien zieht sich das schon etwas hin.

Benutzeravatar
Tintom
Moderator
Beiträge: 3066
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: cp/scp SSH Backup

Beitrag von Tintom » 09.09.2020 18:01:03

Für ein sauberes Backup, was ich im Notfall brauche um Daten wieder einzuspielen, wäre ich bereit einige Minuten mehr in Kauf zu nehmen.

Aber gut, wenn du mit find arbeiten willst wäre mein "rsync für arme"-Ansatz etwa so: find /path/ -mtime 1|xargs tar -czf - |ssh -l login server.com "cat > /path/to/file.tar.gz"

Benutzeravatar
MSfree
Beiträge: 11604
Registriert: 25.09.2007 19:59:30

Re: cp/scp SSH Backup

Beitrag von MSfree » 09.09.2020 18:32:29

joe2017 hat geschrieben: ↑ zum Beitrag ↑
09.09.2020 17:40:31
Es wäre sinnvoller, wenn einfach nur Dateien mit einem Änderungsdatum von Heute kopiert werden (find /path/ -mtime -1)
Nein, das wäre nicht sinnvoller, weil das im Zweifelsfall nicht vollständig ist. Wenn du einmal das Backup vergißt oder durch irgendeinen speziellen Grund einen Tag lang nicht durchgeführt wird, werden Dateien, die innerhalb des Störungszeitraums geändert wurden, nie mehr gesichert.
Die Dateien müssen ja immer mit dem ersten Backup verglichen werden.
Nein, die müssen nicht verglichen werden. Es werden nur Datum und Uhrzeit von Quell- und Zieldateien verglichen. Dazu werden zwei komplette Dateilisten von Ziel und Quelle erstellt und die wird dann verglichen. Das Erstellen der beiden Dateilisten kann in die Minuten gehen, wenn man zig Millionen Dateien und mehrere TByte an Datenbestand hat. Der Vergleich der Listen ist eine Sache von wenigen zehntel Sekunden, daran schließt sich noch die Übertragungszeit an.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: cp/scp SSH Backup

Beitrag von joe2017 » 10.09.2020 09:06:03

Guten Morgen MSfree,

da hast du natürlich vollkommen Recht! Die Daten würden dann nicht mehr gesichert werden.
Und ganau dafür ist ein solches Forum wieder super. Jeder macht mal Denkfehler und freut sich darüber wenn andere Mitdenken. :hail:

Dann werde ich wirklich nicht an rsync vorbei kommen.
Somit werde ich den Case hier schließen und meinen anderen Beitrag (viewtopic.php?f=34&t=178571) weiterverfolgen.

Vielen Dank an alle!

Antworten