automatisches Backup eines ("von einem") eingesteckten USB-Geräts

Status
Für weitere Antworten geschlossen.

flomow

Benutzer
Mitglied seit
23. Sep 2015
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
Hey,

ich habe eine Frage zu Backups:

Wie kann ich einstellen, dass die Synology (das DSM) von einem eingestecktem USB-Stick ein Backup "zieht", sobald dieser eingesteckt ist (so dass ich im Webinterface das nicht extra starten muss)?

[Habe eine DS215j]

Danke, Flomow
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Hallo und willkommen im Forum!

Such hier mal nach dem Paket "autorun"

Tommes
 

flomow

Benutzer
Mitglied seit
23. Sep 2015
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
...Paket "autorun"...

Hey Tommes,

Danke für Deine schnelle Antwort. Hatte gehofft, es gibt was zum "zusammenklicken" :)

Bei dem Paket muss ich ja händisch Skripte schreiben - wenn ich das richtig verstanden hab...(nicht das ich das nicht könnte...)

Viele Grüsse, flomow
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.991
Punkte für Reaktionen
628
Punkte
484

flomow

Benutzer
Mitglied seit
23. Sep 2015
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
Hey,

das gehört jetzt eigentlich doch eher in die Datensicherungs-Sparte, aber:

Mein ziel ist es, einen USB-Stick bei jedem einstecken auf die Synology zu kopieren. Autorun habe ich installiert, ich kann aber beim anlegen einer Datesicherung den (eingesteckten) USB-Stick nicht als quelle (nur als Ziel) auswählen. Leider habe ich im Forum nur das hier http://www.synology-forum.de/showth...-von-angeschlossenem-USB-Stick-auf-Festplatte gefunden.
Sowohl: http://www.synology-forum.de/showth...auf-Festplatte&p=118323&viewfull=1#post118323
als auch http://www.synology-forum.de/showth...auf-Festplatte&p=118324&viewfull=1#post118324
helfen mir nicht wirklich weiter.

Kann mir jemand helfen?

Viele Grüße, flomow
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.665
Punkte für Reaktionen
2.071
Punkte
829
Im Forum ist eine schöne Lösung dokumentiert für Disk Stations, die über einen USB-Copy-Button verfügen. Das ist bei der 215j leider nicht der Fall. M.E. brauchst Du ein Shellskript, um das zu implementieren, was Du Dir vorstellst. Vielleicht kannst Du das verlinkte Skript als Vorlage verwenden.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Mein ziel ist es, einen USB-Stick bei jedem einstecken auf die Synology zu kopieren. Autorun habe ich installiert...

Dann ist jetzt ein wenig Handarbeit gefragt. Hast du bereits eine Datei Namens "autorun" auf deinem USB-Stick erstellt, kannst du diese z.B. über die FileStation oder über einen geeigneten Editor unter Windows (z.B. Notepad++) editieren. Ansonsten mußt du ertmal eine neue "autorun" Datei im Root des USB-Sticks anlegen, wobei darauf zu achten ist, das diese Datei keine Dateierweiterung (autorun.irgendwas) besitzt. Am besten das Ganze also über die Filestation durchführen.

Den Inhalt der Datei solltest du erstmal komplett löschen und durch folgendes Script ersetzten...

Code:
#!/bin/sh
/usr/syno/bin/rsync -avh --delete "volumeUSB1/usbshare/Quelle" "/volume1/Ziel"
exit 100

... wobei du die Werte für "volumeUSB1/usbshare/Quelle" deiner USB-Stick Quelle und "/volume1/Ziel" deinem DiskStation Ziel anpassen mußt. Ist das getan, die Datei speichern, der Stick auswerfen... kurz warten... und wieder einstecken. Jetzt sollte der gewünschte Quellordner von deinem USB-Stick auf dem gewünschten Zielordner auf der DS synchronisiert werden.

Aber Achtung! ... (ich muß das jetzt sagen, aber nicht um dir Angst zu machen): Du machst das alles auf eigene Gefahr. Teste das erstmal mit unwichtigen Testdaten und spiele ggfs. ein wenig mit den Parametern von rsync rum, da die von mir verwendeten Parameter von deinen Wünschen und Vorstellungen abweichen könnten. Mach dich ein wenig mit dem Script vertraut und taste dich vorsichtig an dein Ziel ran. Und ganz wichtig: Hab ein Backup deiner Daten, wenn's ans Eingemachte geht.

Aber um dich zu beruhigen. Ich hab das bei mir gade selber durchgespielt und läuft. Auch sichere ich auf diese Weise nur in umgekehrter Richtung einen verschlüsselten Ordner auf der DS, unverschlüsselt auf einer USB-Festplatte. Klappt ebenfalls problemlos.

Tommes
 
Zuletzt bearbeitet:

flomow

Benutzer
Mitglied seit
23. Sep 2015
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
Hallo Tommes,

vielen Dank für Deine Hilfe.
Habs schon ausprobiert, klappt super!
Aber: Wo geht denn das -v hin? Also, wo finde ich den Verbose-Output von rsync?
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.665
Punkte für Reaktionen
2.071
Punkte
829
Der geht auf die Konsole. Du kannst den Output problemlos in eine Datei umlenken - mit ">" (ohne Anführungsstriche) leitest Du die Ausabe in eine Datei um, die überschrieben wird, falls sie schon existiert. Mit ">>" wir umgeleitet und angehängt. Beispiel: /usr/syno/bin/rsync ... >> /volume1/net/logs/rsync.log
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Also... ich mußte jetzt erstmal selber ein wenig rumbasteln, aber ich glaube eine Lösung gefunden zu haben. Jedoch möchte ich im Vorfeld nochmal klarstellen, das du (und auch alle anderen hier) das alles auf "eigene Gefahr" hin einsetzt. Ich bin in Sachen Linux weiß Gott auch noch ein blutiger Anfänger und daher sind Fehler und/oder Unstimmigkeiten in meinen Scripten durchaus möglich, wenn auch nicht gewollt. Nichts desto Trotz habe ich das hier bei mir natürlich ausgiebig durchgetestet und es läuft auch, was aber nicht heißt, das es bei dir das gleiche tut. Lange Rede kurzer Sinn...

Erstmal mußt du dir auf der Konsole nach dieser Anleitung (übrigens auch von mir) den SSMTP-Server einrichten, damit du überhaupt eine Mail über die Konsole der DS versenden kannst.

Das Dumme an SSMTP ist jedoch, das man damit keine Mailanhänge und somit auch nicht das erstellelte Rsync-Protokoll versenden kann, welches wir über die autorun und dem rsync-Befehl produziert haben. Daher mußte ich einen kleinen Umweg gehen und die Daten für das Rsync-Protokoll mit dem Mail-Header von SSMTP in eine neue Datei überführen. Hier aber erstmal das Script, welches in der autorun stehen sollte.

Rich (BBCode):
#!/bin/sh

/usr/syno/bin/rsync -avh --delete "volumeUSB1/usbshare" "/volume1/Backup" >> /volumeUSB1/usbshare/Backup.log 2>&1

Protokoll=/volumeUSB1/usbshare/Protokoll.log

cat /dev/null > $Protokoll

echo  "To: recipient_email@example.com" >> $Protokoll
echo  "From: myemailaddress@example.com" >> $Protokoll
echo  "Subject: Rsync-Protokoll" >> $Protokoll
echo  "" >> $Protokoll
cat /volumeUSB1/usbshare/Backup.log >> $Protokoll
/usr/bin/ssmtp recipient_email@example.com < $Protokoll

OK. die zweite Zeile ist klar. Hier wird der rsync ausgelöst und die Protokollierten Daten in die Datei Backup.log geschrieben.
Als nächstes wird in der Variablen $Protokoll der Pfad zur temporären E-Mail-Datei gelegt, die wir noch mit Daten füllen müssen.
Um zu verhindern, das noch alte Daten im Protokoll.log stehen und damit der Mail-Header von SSMTP zerwürfelt wird, wird der Inhalt mit cat /dev/null erstmal gelöscht.
Anschließend wird der Mail-Header von SSMTP aufgebaut.
Danach wird mit cat /volumeUSB1/usbshare/Backup.log >> $Protokoll das eigentliche rsync-Protokoll in die E-Mail-Datei geschrieben.
Zum Schluß wird dann die Mail versendet.

Eigentlich nicht schwer, für einen Anfänger wie mich jedoch eine ziemlich harte Nuß gewesen.

Aber nochmal! Bitte das Ganze mit Vorsicht genießen und vor allem erstmal mit unwichtigen Testdaten durchprobieren, bis alles so läuft wie du es haben willst.

Für Anregungen und Kritik bin ich natürlich auch zu haben.

Tommes
 
Zuletzt bearbeitet:

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.665
Punkte für Reaktionen
2.071
Punkte
829
Wo liegt denn das Programm ssmtp - also in welchem Pfad? Auf meiner DS gibts das nicht.
 
Zuletzt bearbeitet:

Tommes

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

Code:
Workstation> which ssmtp
/usr/bin/ssmtp

Du meinst, ich sollte den Pfad ergänzen?


EDIT: Erledigt
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.665
Punkte für Reaktionen
2.071
Punkte
829
Kann nicht schaden. Bei mir gibt es das Programm ssmtp nicht. Von Deinem Skript hier noch eine etwas kompaktere Version:

Rich (BBCode):
#!/bin/sh

Protokoll=/volumeUSB1/usbshare/Protokoll.log

echo  "To: recipient_email@example.com" > $Protokoll # >> hängt an, > überschreibt
echo  "From: myemailaddress@example.com" >> $Protokoll
echo  "Subject: Rsync-Protokoll" >> $Protokoll
echo  "" >> $Protokoll

/usr/syno/bin/rsync -avh --delete "volumeUSB1/usbshare" "/volume1/Backup" >> $Protokoll 2>&1

/usr/bin/ssmtp recipient_email@example.com < $Protokoll

Schöne Sache, Tommes! Nur woher stammt ssmtp? Hast Du die Mail Station und/oder den Mailserver installiert?
 

Tommes

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

Wenn ich mir deine Signatur anschaue könnte ich mir vorstellen, das es unter DSM 4.3 vielleicht noch nicht implementiert gewesen ist. Aber nichts genaues weiß ich nicht!

Auf ssmtp bin ich gestoßen, da ich auf der DS nach einer Möglichkeit suchte, alleine mit Bordmitteln eine E-Mail auf der Konsole zu versenden. Mit IPKG an Bord hatte ich das in der Vergangenheit mit nail gelöst, jedoch gab es eine Zeit lang keinen passenden bootstrap um IPKG auf meine DS115 zu bekommen (was sich wohl durch QTips EBI jetzt wohl geändert hat (habs aber noch nicht pobiert)

Jedenfalls fand ich bei meiner Suche nach einem passenden Mailer halt auf ssmtp, welches ich in den Tiefen der DS fand. Das Tool war halt einfach da. Einen Mailserver, geschweige denn die Mailstation habe ich nicht installiert. Scheinbar gehört ssmtp jetzt zum Funktiosumfang dazu, keine Ahnung! Ich bin auch nur Anwender mit gefährlichem Halbwissen.

Danke übrigens für die "Optimierung" meines Scriptes. Werd ich heut Abend bei mir nochmal abändern. Vor allem sowas wie mit dem...
# >> hängt an, > überschreibt
...sind Dinge, die man erstmal wissen muß. Toll, Danke für den Tipp

Tommes
 
Zuletzt bearbeitet:

Hafer

Benutzer
Mitglied seit
03. Okt 2014
Beiträge
855
Punkte für Reaktionen
12
Punkte
38
Das Einrichten von /etc/ssmtp/ssmpt.conf und /etc/ssmtp/revalias habe ich mir gespart; es funktioniert auch so.

Gruß Hafer
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
@Hafer
Hm... ich hab das bei mir grad mal probiert indem ich beide Dateiinhalte gelöscht habe. Setze ich dann auf der Konsole ein ssmtp ab, erhalte ich als Antwort
Rich (BBCode):
ssmtp: 550 Sender address is not allowed.
Fülle ich jedoch die Datei /etc/ssmtp/revalias mit Daten, lass die /etc/ssmtp/ssmpt.conf jedoch leer, so kann ich sehr wohl Mails über die Konsole versenden. Seltsam! Eine Erklärung habe ich dafür jedenfalls nicht.

@dill88
Dein Script ist leider etwas fehlerhaft, da der Output des rsync nicht in die $Protokoll geschrieben werden soll, sondern in die Backup.log. Weiterhin kann ich in der $Protokoll nicht einfach Daten überschreiben (>) bzw. anhängen(>>) da so das "alte" Protokoll nicht vollständig gelöscht wird. Daher lösche ich den Dateiinhalt mit dev/null erstmal komplett. Ist das geschehen, scheibe ich den Mail-Header in die $Protokoll gefolgt von dem Inhalt des Backup.log welches ich über cat an die $Protokoll anhänge um das Ganze anschließend zu versenden.

Tommes
 

Hafer

Benutzer
Mitglied seit
03. Okt 2014
Beiträge
855
Punkte für Reaktionen
12
Punkte
38
Funktioniert bei mir vllt., weil ich im ControlPanel die e-Mail Benachrichtigung konfiguriert habe. Irgendwoher muss ssmtp ja wissen, welcher smtp server (einschl. credentials) verwendet werden soll.

Gruß Hafer

PS: dil88 schreibt nicht in zwei, sondern nur eine Datei; erst den header, dann den body (das eigentliche Protokoll). Dann wird beim nächsten Aufruf auch alles gelöscht.
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.665
Punkte für Reaktionen
2.071
Punkte
829
Wenn Du in getrennte Dateien schreiben und an die Backup.log immer weiter anhängen willst, musst Du natürlich so vorgehen, wie Du es implementiert hast. Mir persönlich wäre aber lieber, ich bekomme nicht immer die gesamte Historie per Email sondern nur das, was rsync beim entsprechenden Lauf gerade gemacht hat.
 
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