Automatisiertes USB eject und ssh cmd nach Time Backup

Status
Für weitere Antworten geschlossen.

Thorlaroid

Benutzer
Mitglied seit
08. Okt 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Ich habe bei mit eine Synology DS415+ mit einer über USB 3.0 angeschlossenen Festplatten auf die regelmäßig ein Time Backup gespielt wird. Um die externe Festplatte nicht durchgehend laufen zu haben, möchte ich gerne, dass die Festplatte nach abgeschlossenem Backup ordentlich vom Netz getrennt wird. Dies kann ich ohne Probleme über FHEM lösen, müsste dafür allerdings einen ssh Befehl schicken können.

Daher meine Frage: Wie kann ich meine NAS dazu bringen nach dem (erfolgreichen) Time Backup (a) die Festplatte auszuwerfen und (b) einen ssh cmd abzufeuern? Wenn jemand Rat weiß, dann würde ich mich freuen.
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Direkt nach einem Backup keine Ahnung, eventuell könntest du mit einem Script prüfen ob der Time Backup Prozess noch läuft.
Wenn dies nicht der Fall ist dann soll getrennt werden.



Was du aber wohl machen könntest ist ein Conjob erstellen, der x Stunden nach dem starten des Time Backup ausgeführt wird. Je nachdem wieviele Daten gesichert werden.

Also z.B. 22 Uhr startet Time Backup und fängt an zu sichern.

Dann ein Cronjob um 3 Uhr starten und USB unmounten sollte mit "/usr/syno/bin/synousbdisk -umount DEVICE" klappen, dann sendest du den Befehl per FHEM um die (Funksteckdose?) auszulösen, hast du dir das in etwa so vorgestellt oder soll nur getrennt werden?
 

Thorlaroid

Benutzer
Mitglied seit
08. Okt 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hey, danke für die Rückmeldung.
Ja, die Idee ist, dass eine Funksteckdose die USB-Platte komplett vom Netz trennt und vor dem nächsten Backup halt wieder startet. Die Lösung, wie Du sie beschreibst hatte ich bisher mit dem normalen Backup gehabt. Dort kann man ja auch einstellen, dass das LAufwerk automatisch nach dem Backup ausgeworfen wird. Beim Time Backup gibt es diese Möglichkeit (noch) nicht. Ich hatte die Steckdose dann aber direkt über FHEM nach 5 Stunden abgeschaltet, aber leider lässt sich die Zeit nicht immer so gut timen, da es zwischendurch bei mir auch mal größere Backups gibt.
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.672
Punkte für Reaktionen
2.074
Punkte
829
Da wäre dann die Idee mit dem Test über den Time Backup- oder rsync-Prozess schon besser.
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Alles klar.

Ich habe gerade unter DSM 6 Beta geschaut hier gibt es ja kein Timebackup mehr allerdings das Multiversion Backup. Ich werde auch dass dann nutzen.

Dort kann man auch automatisch das Gerät trennen lassen.

Wenn man jetzt z.B. jede Stunde nach dem Backup den Status abfragt bis er beendet wird und dann erst den Befehl zum ausschalten der Steckdose sendet und die Anfrage des Prozess beendet sollte es ja eigentlich klappen.
 

Luis942

Benutzer
Mitglied seit
22. Jun 2012
Beiträge
495
Punkte für Reaktionen
41
Punkte
28
Hast du inzwischen eine finale Lösung gefunden?

Ich habe bislang mit einer Fritz Dect 200 Steckdose die externe HDD abgeschaltet. Die Steckdose war dabei so eingestellt, dass wenn der Verbrauch der externen HDD unter 2,5W (getrennt+Spindown der HDD) gefallen ist diese automatisch abgeschaltet wurde.
Der Multiversionsbackup den Synology nun aber eingeführt hat trennt die HDD nur von der Diskstation. Die HDD wird dabei aber nicht schlafen geschickt. Dadurch bleibt der Verbrauch bei etwas um die 5W und man die HDD nicht mehr nur allein auf Grund des Stromverbrauchs abschalten. An Synology habe ich das bereits weiter gegeben.

Dieser Multiversionsbackup in eine Datenbank hat für mich eigentlich so gut wie keinen Nutzen. Ich will an die Backups jederzeit mit einem fremden Rechner dran kommen. Das geht wohl im Moment nur mit Timebackup. Ich tippe das Timebackup in deinem DSM Paket auch drin ist. Öffnen dein DSM Paket mal mit 7zip (habe ich genommen) und guck mal in den Ordner Packages. Da ist sicher TimeBackup in der richtigen Version schon enthalten.

Allerdings lässt TimeBackup nur das Sicher auf ein mit ext4 formatiertes Laufwerk zu. Da ich normaler Weise nur Windows Rechner nutze, würde ich die externe HDD gern in ntfs belassen.

Daher überlege ich nun ob für mich doch ein Script, welches über den Aufgabenplaner gestartet wird, besser wäre. Damit könnte man wohl die Wunschordner auf das externe Laufwerk kopieren und nach Abschluss die externe HDD auswerfen (trennen+abschalten).
Nur habe ich keine Ahnung wie so ein Script aussieht. Allerdings habe ich gehört, dass sich jemand der hier auch schon geantwortet hat, gut damit auskennt.
@dil88 Ich denke da an dich. ;)
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.672
Punkte für Reaktionen
2.074
Punkte
829
Ich auch an Dich. ;) Hier findest Du ein Beispielskript, was das Auswerfen für eine eSATA-Platte beinhaltet. Geht aber mit Anpassungen vom Prinzip her genauso mit einer USB-Platte. Tee benutze ich, weil ich das Skript manuell starte. Über einen Aufgabenplaner würde ich entweder nur in ein Logfile schreiben oder auf stdout, um die Ausgabe dann im Aufruf umzuleiten.
 

Luis942

Benutzer
Mitglied seit
22. Jun 2012
Beiträge
495
Punkte für Reaktionen
41
Punkte
28
Du machst das genau so wie ich das auch möchte.... 1:1
Ich habe aber noch ein paar Fragen. Schon mal sorry vorweg wenn ich mich blöd anstelle, ist mein erstes Mal ;D .
Kann ich unter:
SOURCE="/volume1"
DEST="/volumeSATA/satashare"
mehrere Sourcen eingeben?
So etwa:
SOURCE="/volume1/Eigene Dateien"
SOURCE="/volume1/homes"
SOURCE="/volume2/Video"

Reicht es dann ein Ziel anzugeben?
DEST="/volumeSATA/satashare"

Oder wie muss das dann sein?
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.672
Punkte für Reaktionen
2.074
Punkte
829
Da bin ich gar nicht sicher. Ich mach es so, dass ich für jedes "Top-Verzeichnis" einen eigenen rsync-Aufruf 'reinsetze. SOURCE ist für mich nur der Basis-Pfad, den ich dann je Aufruf entsprechend ergänze. Für DEST gilt genau das Gleiche. Auch hier muss jeweils der Basis-Pfad in der Variablen noch ergänzt werden. Beispiel aus dem verlinkten Skript:

Rich (BBCode):
$RSYNC -rltvh --delete $SOURCE/pic/ $DEST/pic

Wichtig ist dabei, bei der Quelle mit einem Slash abzuschließen und beim Ziel nicht.

Die rsync-Zeile kann man dann auch bei Bedarf noch mit einem Kommentar genauer beschreiben, was die Übersicht verbessern kann. Mit der Option -n kannst Du übrigens den rsync so konfigurieren, dass er "trocken" läuft (dry-run), was das Testen sehr vereinfacht. Er protokolliert genau das Gleiche wie bei einem produktiven Lauf, ändert aber nichts.
 

Luis942

Benutzer
Mitglied seit
22. Jun 2012
Beiträge
495
Punkte für Reaktionen
41
Punkte
28
Noch eine Frage. wie lege ich das Script an? Wo gibt es eine gute Anleitung dazu?
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.672
Punkte für Reaktionen
2.074
Punkte
829
Ich habe es ganz banal im Home-Verzeichnis des Root-Users (/root) untergebracht. Wichtig ist, dass Du es ausführbar machst - also z.B. so:

Rich (BBCode):
chmod 754 /root/bin/sicherung.sh
 

Luis942

Benutzer
Mitglied seit
22. Jun 2012
Beiträge
495
Punkte für Reaktionen
41
Punkte
28
OK, soweit schon mal vielen Dank.
Ich werde jetzt meine Verzeichnisse umsortieren. Da kann ich dann mittels Source Volume1 die Daten sicher die sicher möchte. Auf Volume2 schiebe ich den Rest. Damit habe ich nur eine Source.

Das Script startest du dann mit der Aufgabenplanung?
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.672
Punkte für Reaktionen
2.074
Punkte
829
Ich starte es manuell, aber da alle Binaries mit komplettem Pfad aufgerufen werden, sollte das Ding auch über die Aufgabenplanung funktionieren. Wenn Du es so laufen lässt, wie ich es geschrieben habe, solltest Du nur die Ausgabe auf /dev/null umleiten. Besser wäre es in dem Fall, die Tee-Geschichte herauszunehmen.
 

Luis942

Benutzer
Mitglied seit
22. Jun 2012
Beiträge
495
Punkte für Reaktionen
41
Punkte
28
ich würde dann:
CHMOD="/bin/chmod"
CHOWN="/bin/chown"
DATE="/bin/date"
ECHO="/bin/echo"
RSYNC="/usr/syno/bin/rsync"
TEE="/usr/bin/tee"
UMOUNT="/bin/umount"

LOG="/volume1/net/Backup/rsync-Backup.log"
SOURCE="/volume1"
DEST="/volumeSATA/satashare"

if [ -d $DEST/'$RECYCLE.BIN' ]; then
$ECHO "Start des rsync-Laufs Backup" 2>&1

$ECHO "-----" 2>&1
$DATE 2>&1
$ECHO "pic" 2>&1
$RSYNC -rltvh --delete $SOURCE/Eigene/ $DEST/Eigene 2>&1
$ECHO "-----" 2>&1
$DATE 2>&1
$ECHO "music" 2>&1
$RSYNC -rltvh --delete $SOURCE/music/ $DEST/music 2>&1
$ECHO "-----" 2>&1
$DATE 2>&1
$ECHO "net" 2>&1
$RSYNC -rltvh --delete $SOURCE/home/ $DEST/home 2>&1

$ECHO "-----" 2>&1
$DATE 2>&1
$ECHO "Ende des rsync-Laufs Backup" 2>&1

$CHOWN owner:local $LOG
$CHMOD 644 $LOG

# eSATA Platte unmounten und auswerfen
$UMOUNT /dev/sdc1
$ECHO 1 > /sys/block/sdc/device/delete
else
$ECHO "eSATA unavailable"
fi

Wie sehe ich den welches Gerät meine esata HDD ist? denn ich muss doch das noch anpassen:
$UMOUNT /dev/sdc1
$ECHO 1 > /sys/block/sdc/device/delete
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.672
Punkte für Reaktionen
2.074
Punkte
829
Wenn Du einen eSATA-Port hast wie ich, was bei Deinen beiden DS der Fall ist, dann sollte das so direkt funktionieren. Kannst Du ja auf der Konsole testen. Und wie gesagt: Bau vielleicht erstmal überall die Option n ein zum Testen (also $RSYNC -nrltvh statt $RSYNC -rltvh). Ich nutze mit dem Skript eine NTFS-formatierte externe Platte. Wenn Deine ext4-formatiert ist, kannst würde ich die a-Option verwenden, also $RSYNC -avh (bzw. zum Testen $RSYNC -navh).
 

Luis942

Benutzer
Mitglied seit
22. Jun 2012
Beiträge
495
Punkte für Reaktionen
41
Punkte
28
ich habe noch eine ssd drin....
sdc dürfte deshalb die ssd sein...
kann man nicht mit putty abfragen welche Geräte welche adresse haben?
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.672
Punkte für Reaktionen
2.074
Punkte
829
Schau Dir einmal den Output des Kommandos dmesg an. Da siehst Du u.a. das, was beim Booten ausgegeben wird und das beinhaltet normalerweise auch die Hardware, die erkannt wurde. Vermutlich gibts auch etwas unter /proc/scsi oder so.
 

Luis942

Benutzer
Mitglied seit
22. Jun 2012
Beiträge
495
Punkte für Reaktionen
41
Punkte
28
bei dmesg kann ich nur eines meiner Laufwerke erkennen. Ich guck aber nachher nochmal wenn der letzte Ordner verschoben ist.
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Das umount kannst Du auch auf dem Pfad machen ($UMOUNT $DEST).

Ansonsten werfe ich mal autorun in den Raum, welches beide Werte (Pfad und Device) als $1 und $2 übergibt.
 

Luis942

Benutzer
Mitglied seit
22. Jun 2012
Beiträge
495
Punkte für Reaktionen
41
Punkte
28
Autorun läuft bei mir auf der beta 6.0 leider nicht.
 
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