[Projekt] rsync -Alternative dateibasierte Datensicherung

Status
Für weitere Antworten geschlossen.

hoddelac

Benutzer
Mitglied seit
14. Mrz 2015
Beiträge
130
Punkte für Reaktionen
2
Punkte
18
Hallo, zuerst ein großes Dankeschön für dieses tolle Script !!!

Ich habe das Script bereits im Einsatz und möchte nun gerne ein Backup direkt auf mein Strato Hidrive machen.
dazu habe ich bei ssh_to die rsync Adresse eingetragen (rsync.hidrive.strato.com, Port 873) einen ssh Zugang scheint es nicht zu geben.
Leider wird so keine Verbindung aufgebaut, gibt es eine andere Möglichkeit?
Mit sftp.hidrive.strato.com funktioniert es leider auch nicht.

https://www.strato.de/faq/article/2046/Wie-lauten-die-Pfade-zu-FTP,-SMB,-WebDav,-rsync-etc..html
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Das sollte sicherlich gehen.
Allerdings habe ich es selbst nicht probiert.
Ehrlich gesagt frage ich mich gerade auch, ob es mit den Abfragen klappt zwecks Ziel (volume*)
Eventuell muss dort dann doch noch einiges umgeschrieben werden.

Sonst könnte man evtl. Strato als Remote mounten und das dann als Ziel definieren.

Wenn die Übertragung verschlüsselt per rsync erfolgen soll, läuft dies ja über ssh und das ist auch bei Strato nochmal sehr gut erklärt.

https://www.strato.de/faq/article/2031/Wie-richte-ich-rSync-ein.html
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Das ist das, was hvkls hier bereits angesprochen hat. Mann kann ssh bzw. dem RSync noch den entsprechenden Port mitgeben. Diese Option war auch kurzzeitig mal in unserer Beta enthalten ist in der Final aber wieder untergegangen. Wir müssen also überall dort, wo der ssh abgefragt wird, noch eine Variable für den Port schaffen oder so ähnlich.

Ich schau mit das jetzt grad mal an...


Tommes
 

hoddelac

Benutzer
Mitglied seit
14. Mrz 2015
Beiträge
130
Punkte für Reaktionen
2
Punkte
18
ich bekomme es mit diesem Befehl rsync -rltD -e "ssh -i /Pfad/zum/SSH-Key" /Verzeichnispfad/der/übertragen/werden/soll/ benutzername@rsync.hidrive.strato.com:/users/benutzername
ausgefüht auf meinem RaspberryPi auch hin. hier gebe ich den Port auch nicht extra mit.

Was ich nicht ganz verstehe, was ich bei TARGET eintragen muss bzw. wie.
im Moment sieht es so aus
TARGET="/users/meinname/test"

Befehl auf dem PI
rsync -avzre "ssh -i /root/.ssh/hidrive" Documents meinname@rsync.hidrive.strato.com:/users/meinname/test

funktioniert sogar mit key
 

hoddelac

Benutzer
Mitglied seit
14. Mrz 2015
Beiträge
130
Punkte für Reaktionen
2
Punkte
18
das habe ich bereits getestet und das funktioniert auch, verschlüsselt über ssh wäre mir persönlich aber lieber.

Sonst könnte man evtl. Strato als Remote mounten und das dann als Ziel definieren.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Hm.. ich glaub das wird so erstmal nicht funktionieren. PsychoHH hat es oben ja bereits erwähnt, wir beziehen und bei TARGET immer auf ein volume* der DS. Das Bedeutet, das deinem TARGET immer ein volume*/ vorangestellt ist womit Strato dann wohl nichts anfangen kann da er hier ja ein /users/meinname/ haben möchte. Hier müssten wir tatsächlich das Script so umschreiben, das der Benutzer ein individuelles TARGET vergeben kann, was im Umkehrschluss jedoch bedeuten würde das man dann immer /volume[x]/Sicherungsziel angeben müsste.

Ich werd das mal mit PsychoHH bequatschen, ob und wie wir das lösen können. Würde ja Sinn machen. Gib uns mal grad ein wenig Zeit, ok.

Tommes
 

hoddelac

Benutzer
Mitglied seit
14. Mrz 2015
Beiträge
130
Punkte für Reaktionen
2
Punkte
18
Nur keine Hektik ! und vielen Dank das ihr euch darum kümmert
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Wir haben keine Hektik... wir haben Spaß an sowas :D

Das Problem mit der Portmitgabe ist so gut wie gelöst, wollte das eh schon die ganze Zeit eingebaut haben. Teste das bereits.

Würden wir aber das Script so ändern, das man sowohl bei den SOURCES als auch bei TARGET stets den kompletten Pfad mitgeben müssten, würde das dem "unbedarften" Benutzer wieder vor unnötige Hürden stellen. Für den erfahrenen Benutzer ist das natürlich eher ein Hindernis welches er gerne weg haben würde. Wir überlegen daher grade wie wir diese Nuss benutzerfreundlich lösen können, so das alle etwas davon haben. Das das Script z.B. automatisch erkennt, ob die Gegenstelle eine DS ist oder nicht...

Tommes
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Ich denke mal mit ist eine Möglichkeiten eingefallen, wie wir das lösen können ohne die Volumen mit anzugeben und, dass es "erkennt" ob es sich um eine DS handelt. Somit sollte das dann unabhängig sein.
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.679
Punkte für Reaktionen
2.082
Punkte
829
Vielleicht läßt sich das ja so einrichten, dass es gesetzt werden kann aber nicht muss (optional).
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Also dann, das erste Problem hätten wir schonmal gelöst.

Release Notes vom 29.04.2016
Es wurde eine neue Variabel (SSH_PORT) geschaffen um einen abweichenden SSH-Port angeben zu können.

(Dazu bitte das Script aus dem Wiki nochmal neu kopieren, da an 5 verschiedenen Stellen etwas geändert werden musste)


Das andere Problem ist ein weit aus größeres, da hier doch so einiges im Script umgebaut werden muß. PsychoHH und mir war garnicht bewusst, das unser Script ja eigentlich nur mit anderen Diskstation's im Netzwerk zusammenarbeitet, nicht aber mit RSync kompatiblen Servern

Von daher sehen wir uns natürlich in der Pflicht, diesen Missstand zu revidieren. Gebt uns bitte ein paar Tage Zeit, dieses Problem zu lösen. PsychoHH hat bereits ein paar vielversprechende Ansätze zum Besten gegeben, daher würde ich jetzt schon mal behaupten, das wir das hinbekommen werden.

Tommes
 
Zuletzt bearbeitet:

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
hoddelec ich hatte gestern Abend wohl schon die Lösung. Jetzt gibt es zwei Möglichkeiten die klappen könnten. Wenn ich dir mal zwei verschiedene Skripte schicke, magst du diese dann mal testen? Das Ziel wäre dann auch theoretisch so richtig angegeben.
TARGET="/users/meinname/test"

Vielleicht magst mir dann ja deine email per pn schicken. Dann gebe ich dir nachher die Scripte.
 

hoddelac

Benutzer
Mitglied seit
14. Mrz 2015
Beiträge
130
Punkte für Reaktionen
2
Punkte
18
Natürlich teste ich gerne, Email habe ich dir geschickt
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Kurzer Statusbericht!

PsychoHH hat mal wieder ein paar super Pässe geliefert die ich, nach ein paar kleineren Modifikationen, alle verwandeln konnte. (und das aus dem Munde eines "Anti"-Fußballers). Soll heißen, das wir jetzt nicht nur -von und auf- entfernte Diskstations, sondern auch -von und auf- entfernte RSync-kompatible Server sichern können. Dabei erkennt das Script automatisch, ob Quelle oder Ziel eine Diskstation ist oder nicht. Dementsprechend werden die Pfade dann anders gesetzt, da RSync-kompatible Server nicht immer mit einem /volume[x] arbeiten.

Als RSync-kompatiblen Server habe ich meinen Raspberry Pi mit Raspbian Jessie wieder rausgekramt. Dabei konnte ich sowohl Daten von meinem Pi auf die DS sichern, als auch Daten von meiner DS auf den Pi schicken. Weiterhin können wir jetzt sowohl den SSH-Port als auch den RSync-Port frei wählen. Das sieht alles schon verdammt gut aus was PsychoHH da wieder aus dem Hut gezaubert hat.

Wir werden das morgen nochmal ausgiebig testen und sollte alles so laufen wie wir uns das vorstellen, dann stellen wir das morgen Abend vielleicht schon Online.

Tommes
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Wie versprochen, stellen wir euch heute unsere neuen Release-Notes vor.
Das Hauptaugenmerk liegt hierbei in der Implementierung von Sicherungsaufgaben von und auf RSync-komptible Server, was in der Vergangenheit so nicht möglich war. PsychoHH hat sich dieser Problematik angenommen und ein Rundum-Sorglos-Paket in einer wahnwitzigen Geschwindigkeit von nur 2 Tagen geschnürt. Als RSync-Kompatibler Server diente uns ein Raspberry Pi mit Raspian Jessie im lokalen Netzwerk. Das ist natürlich keine sonderlich aussagekräftige Refferenz, jedoch sind wir der Meinung, das wenn es mit einem Pi funktioniert sollte es auch mit anderen RSync-kompatiblen Servern funktionieren. Strato mit seinem HiDrive konnten wir damit zwar noch nicht erreichen, aber PsychoHH kennt bereits die Gründe dafür und sogar wohl schon einen Weg dieses zu ermöglichen. Seien wir also gespannt auf das was PsychoHH noch so alles aus dem Hut zaubert.

Aber ich quatsch schon wieder zuviel. Hier also die...

Release Notes vom 01.05.2016
  • Es wurde eine neue Variable (SSH_PORT) geschaffen um einen abweichenden SSH-Port angeben zu können.
  • Es wurde eine neue Variable (RSYNC_PORT) geschaffen um einen abweichenden RSync-Port angeben zu können.
  • Es wurde eine neue Variable (EMAILFAIL) geschaffen um nur bei einer Störung per E-Mail benachrichtigt zu werden.
  • Alle "schaltbaren" Benutzer-Variablen wurden nach dem Schema "0" = aus / "1" = an umstrukturiert. Ursprünglich wurde der Wert bei Zustand "aus" einfach leer gelassen, also "".
  • Kommentare im Benutzer-Eingabebereich des Scripts wurden optimiert.
  • Neben der bereits funktionierenden Sicherung von und auf eine weitere Diskstation funktioniert jetzt auch das Sichern von und auf einen RSync-kompatible Server. Das Script erkennt hierbei automatisch ob es sich um eine Diskstation oder einen RSync-kompatiblen Server handelt und passt die Sicherungs-Pfade dementsprechend an. Diskstation arbeiten i.d.R. mit einem /volume[x], RSync-kompatible Server tun das in der Regel nicht.
  • Viele weitere Detailverbesserungen, die hier nicht alle aufgeführt werden können. Nur so viel... das Script ist um weitere 100 Zeilen Scipt-Code gewachsen.

Tommes & PsychoHH
 

gente

Benutzer
Mitglied seit
07. Mrz 2016
Beiträge
252
Punkte für Reaktionen
0
Punkte
22
...wollte gerade das neue geniale script bei einem backup von volume1 auf volume2 der gleichen DS testen und habe mit folgenden settings:

TARGET="/NetBackup/Backup_DS"

NOTTOSCRIPT="1" # "0" = Sicherungsziel liegt beim Script
# "1" = Sicherungsziel liegt im geinsamen Ordner
HOSTNAME="0" # "0" = Sicherungsziel entspricht TARGET
# "1" = Sicherungsziel entspricht TARGET/HOSTNAME
AUTORUN="0" # "0" = autorun wirft USB-Stick nicht aus
# "1" = autorun wirft USB-Stick aus

...das backup in folgendem ordner gefunden (Angaben aus dem logfile):

"Starte Datensicherung: /Dokumente nach /volume2/NetBackup/Backup_DS/NetBackup/Backup_DS"

...also 2x target Ordner, wird irgendwo im Script doppelt stehen. Bin aber leider zu unerfahren um den Fehler im script zu finden, wäre dankbar über eine Nachbesserung.

Und wie bekomm ich die logfiles wieder ins Zielverzeichnis?

LG Thomas
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Ich schaue mir das mal kurz an.

Und wie bekomm ich die logfiles wieder ins Zielverzeichnis?

Eigentlich wollten wir das so nicht mehr haben, da es Probleme geben kann, bzw. man dies dann immer suchen muss.
Ich schicke dir aber gerne einen Code dafür :)
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Hi gente (Thomas)!

Ich denke, hier liegt ein Missverständnis vor. Bei einer internen Sicherung, so wie du es vor hat, sollte das RSync-Script am Speicherort des Sicherungszieles liegen. Bei dir wäre das dann wohl /NetBackup. Wenn du jetzt der Variablen TARGET einfach nur den Ordner /Backup_DS übergibst, dann wird die Datensicherung unter /NetBackup/Backup_DS abgelegt. Da du hier zusätzlich aber noch die Variable NOTTOSCRIPT="1" gesetzt hast, versucht das Script nicht am Speicherort des Scriptes, sondern an einen entfernten Ziel die Sicherung abzulegen. Setz also die Variable NOTTOSCRIPT auf "0" und TARGET auf "/Backup_DS" dann sollte es klappen.

Das Logfile wird im Übrigen jetzt immer am Speicherort des Scripts abgelegt, da es in unseren Augen keinen Sinn macht das dass Logfile z.B. bei einer Sicherung auf einen entfernten Server im Sicherungsziel landet, vor allem dann, wenn obendrein das Sicherungsziel ein verschlüsselter Ordner ist, der nach der Sicherung ausgehangen wird.

Probier mal und wenn es nicht klappt, meld dich nochmal.

Tommes
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Nein nein ich glaube er hat recht.

Er will ja von volume1 auf 2 sichern, da ist es ja richtig mit nottoscript 1

Ich habe den Fehler glaub ich gefunden.
Muss aber nochmal kurz was nachschauen
 

gente

Benutzer
Mitglied seit
07. Mrz 2016
Beiträge
252
Punkte für Reaktionen
0
Punkte
22
...ok jetzt funktioniert es wieder, beim letzten script hat ich das aber so gemacht und alles war gut.
Durch das definierte target verzeichnis, nottoscript=1 und script in meinem script ordner sollte er doch alles in das angegebene Verzeichnis sichern. Wie kommt dann das script darauf die Verzeichnisstruktur zu doppeln?
Ist auch so nicht in den Beschreibungen im Script ersichtlich.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat