Tutorial: Raspberry Pi mittels rsync auf DS sichern!

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.
Also bei mir klappt das. Aber vielleicht kannst du mal zum testen das nachfolgende Script per Copy & Paste kopieren, dann z.B. in eine Datei Namens rsync.sh einfügen, speichern und dann über den Aufgabenplaner ausführen. Du mußt hier nur die Variablen für TOSSH, SOURCE und TARGET anpassen...

Code:
#!/bin/sh

TOSSH="root@192.168.178.5"
SOURCE="/home"
TARGET="/volume1/NetBackup/RasPi"

# Umgebungsvariablen definieren
RSYNCCONF=""
RSYNC="/usr/syno/bin/rsync"
MKDIR="/bin/mkdir"
ECHO="/bin/echo"
DATE="/bin/date +%Y-%m-%d_%H%M"
TIMESTAMP="/bin/date +%d.%m.%Y_%H:%M:%S"
SYNODSMNOTIFY="/usr/syno/bin/synodsmnotify"

# Ordner und Datei für das Protokoll anlegen
$MKDIR -p $TARGET/@Logfiles
  LOG="$TARGET/@Logfiles/`$DATE`_Sicherungsprotokoll.log"
  $ECHO "Sicherungsprotokoll vom `$TIMESTAMP` Uhr" > $LOG
  $ECHO "" >> $LOG

# rsync - Befehl ausführen sowie protokollieren  
	$ECHO  "" >> $LOG
	$ECHO "--> Zusammenfassung von: $TARGET" >> $LOG
	$RSYNC -ahz --stats --log-file-format="%i %o %f" -e ssh "$TOSSH:$SOURCE" "$TARGET" >> $LOG 2>&1
	
# rsync - Ausführung auswerten und Ergebnis anhand der "exit codes" ausgeben
	if [ $? -eq 0 ]; then      
		$ECHO  "" >> $LOG
		$ECHO "rsync-Datensicherung erfolgreich abgeschlossen" >> $LOG
		DSMNOTIFY="rsync-Datensicherung erfolgreich abgeschlossen"            
		
	elif [ $? -ne 0 ]; then  
		$ECHO  "" >> $LOG            
		$ECHO "rsync-Datensicherung fehlgeschlagen - Fehler $?" >> $LOG
		DSMNOTIFY="rsync-Datensicherung fehlgeschlagen - Fehler $?"    
	fi  

# Benachrichtigung an die DSM-Administratorengruppe senden	
  $SYNODSMNOTIFY @administrators "rsync-Script" "$DSMNOTIFY"

BTW: Dieses Script erlaubt es nur eine Quelle (SOURCE) auszuwählen, möchtest du gerne mehrere Quellen verwenden mußt du das Script dementsprechend anpassen. Außerdem bekommst du so eine Nachricht über den DSM über Erfolg und Misserfolg des rsync-Laufes. Schau's dir einfach mal an.

Und falls das mit dem Copy & Paste auch nicht klappen sollte, hier noch die Datei (musst sie nur unzippen)...

Tommes
 

Anhänge

Ich tue mich mit der Console der DS echt schwer :-(

Ich habe im Script folgendes Geändert:
TOSSH="root@192.168.178.49"
SOURCE="/var/www/"
TARGET="/volume1/public/web"

Das Script liegt auch im /public/web Ordner
Wenn ich das dann ausführe , wird es geladen und dann ist Ende. Keine Log Datei vorhanden.
Irgendwo habe ich doch noch einen Wurm drinne :-(
 
Hm... da bin ich auch grad etwas ratlos. Vielleicht liegt es auch an deinem "Benutzer mit Adminrechten" ?!? Keine Ahnung. Das Problem ist aus der Ferne aber auch schwer zu lokalisieren. Vielleicht probierst du das ganze mal direkt auf der Konsole der DS als root mit dem Passwort des admin. Aber die Konsole gehört ja, wie du selber sagtes, nicht grade zu deiner Lieblingsumgebung.

Tommes
 
Ah... guter Hinweis Grobi... äh... Jörg. Das könnte tatsächlich eine Fehlerquelle sein. Mal schauen was Venkman dazu sagt...
 
Also das script habe ich jetzt über die Konsole gestartet.
Einmal mit /var/www/ und einmal ohne den letzten Slash

Zumindest wird ein Log angelegt:
Sicherungsprotokoll vom 28.02.2016_19:43:02 Uhr


--> Zusammenfassung von: /volume1/public/web
ssh: Could not resolve hostname : Name or service not known
rsync error: unexplained error (code 255) at io.c(687) [Receiver=3.0.9]

rsync-Datensicherung fehlgeschlagen - Fehler 0

Die Fehlermeldungen sind bei beiden Versionen identisch
 
Habe jetzt alles nochmal gelöscht und von vorne angefangen.
Jetzt kommt der Fehler, wenn ich den aufruf in der Konsole starte
Permission denied (publickey,password).
rsync error: unexplained error (code 255) at io.c(687) [Receiver=3.0.9]
 
Dann hast du ein grundlegendes Problem mit der SSH-Verbindung und solang das nicht funktioniert, kann das Script auch nicht funktionieren.

Was machst du mit deinem Raspberry Pi überhaupt? Was läuft auf dem Pi? Raspian? OpenELEC?

Tommes
 
da läuft Raspian drauf mit dem NGinx Webserver und Owncloud.
Sonst nichts
 
Hast du auf dem Pi evtl. eine Firewall eingerichtet und dabei den Port 22 gesperrt? Oder hat die fail2ban Falle zugeschnappt? Keine Ahnung was da bei dir schief gelaufen ist. Geh am besten nochmal Schritt für Schritt alles durch und schau ob du den Fehler lokalisieren kannst. Ich weiß grad nicht, wie ich dir da helfen kann

Tommes
 
Firewall und Fail2Ban läuft nicht.
Ich komme ja mit Putty ohne Probleme auf den Raspi

Im Netz ist er auch ohne Probleme anzupingen

Trotzdem Danke für die Hilfe.
Ich werde es später nochmal versuchen
 
Und von der Konsole der DS kannst du keine SSH-Verbindung zum Pi ala...
Code:
ssh root@IP-DES-PI -p 22
...aufbauen? Dabei erhälst du dann eine Fehlermeldung, richtig?

Mal so nebenbei gefragt: Steht dein Pi im Internet oder nutzt du ihn nur lokal?
 
Möglich das Fail2Ban doch installiert ist. Ist mir zwar nicht mehr bewusst das ich das gemacht habe, aber es gibt dazu ein Verzeichnis :-(

Den SSH Befehl habe ich mal mit -v ausgeführt.
Vielleicht sagen die Meldungen dazu ja mehr aus.
--------------------------------------------------
Diskstation> ssh -v root@xxx.xxx.xxx.xxx -p 22
OpenSSH_6.6, OpenSSL 1.0.1q-fips 3 Dec 2015
debug1: Connecting to xxx.xxx.xxx.xxx [xxx.xxx.xxx.xxx] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type 1
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6p2-hpn14v4
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-4+deb7u2
debug1: Remote is NON-HPN aware
debug1: match: OpenSSH_6.0p1 Debian-4+deb7u2 pat OpenSSH* compat 0x14000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: AUTH STATE IS 0
debug1: REQUESTED ENC.NAME is 'aes128-ctr'
debug1: kex: server->client aes128-ctr umac-64@openssh.com none
debug1: REQUESTED ENC.NAME is 'aes128-ctr'
debug1: kex: client->server aes128-ctr umac-64@openssh.com none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 4e:66:e4:5e:72:7c:5f:61:f3:9b:c9:91:5e:08:ef:1e
debug1: Host '192.168.178.49' is known and matches the ECDSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password
root@xxx.xxx.xxx.xxx's password:
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
---------------------------------------------
 
Also mein Vermutung ist das was mit dem KeyFile nicht passt.
Egal welches PW ich eingebe es kommt immer Permission denied

und dann hänge ich im Fail2Ban , obwohl ich da auch meine IP bei ignoreip angegeben habe.
 
Ah, ich glaub jetzt hab ich's. Hast du beim Erstellen des RSA-Keys (ssh-keygen -t rsa) nach Rückfrage ein Passwort eingegeben? Falls ja, könnte hier der Hund begraben liegen da ich an dieser Stelle kein Passwort angegeben habe.

Tommes
 
Nein habe kein Passwort oder Passphrase eingegeben.
Wenn ich von der DS eine Verbindung zum Raspi aufbauen will werde ich aber nach einem Passwort gefragt.
Aber egal was ich da eingebe alles wird zurück gewiesen :-(
 
Verbinde dich als User "pi", nicht "root". Dann aktiviere mit "sudo -s" (mit Passwort des pi-Users) eine root-Shell. Dort vergibst du ein Passwort mit "passwd root". Danach funktioniert SSH in den root-Account wahrscheinlich.
 
Den User Pi gibts bei mir nicht mehr.
Wurde so in vielen Anfänger Anleitungen vorgeschlagen.
 
Hier geht es aber um den root-Account, nicht um den des Users.
 
Habe aber auch beide Varianten probiert , einmal als User und einmal als Root

jetzt gibt es nur noch diese Fehlermeldung
--> Zusammenfassung von: /volume1/public/web
ssh: Could not resolve hostname : Name or service not known
rsync error: unexplained error (code 255) at io.c(687) [Receiver=3.0.9]

Keine Ahnung wo ich noch suchen soll
 
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