DS in Abhängigkeit der Uptime herunterfahren

Status
Für weitere Antworten geschlossen.

black8

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
18
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich möchte gerne ein kleines Script für die DS 211j erstellen, welches abhängig von der Uptime des Geräts dieses herunterfährt.

Folgendes Szenario:
Wöchentlich läd ein entfernter Rechner (nicht im Lan, 300km weit weg) ein Backup nachts auf die DS. Dafür wird diese bereits automatisch hochgefahren, falls sie zu dem Zeitpunkt aus ist.

Das Backup dauert zwar immer ziemlich genau 10 Minuten, jedoch möchte ich dennoch nicht den normalen Zeitplan nutzen um das Gerät herunterzufahren, da es ja dann auch aus gehen würde, wenn es schon die ganze Zeit lief und eigentlich durchlaufen soll.

Meine Idee ist daher folgendes:
IPKG ist alles bereits installiert und Zugriff auf cronjobs habe ich ebenfalls.

Die DS sollte z.B. eine Stunde nach dem Backup ein Skript starten.
Das Skript prüft, ob die Uptime zu diesem Zeitpunkt eine Stunde beträgt oder mehr.

Sollte die Uptime über einer Stunde liegen, die DS also bereits vor dem Backup aktiv gewesen sein, passiert nichts, andernfalls wird das Gerät mit poweroff heruntergefahren.

Ich kenne mich unter Windows recht gut mit Batch-Dateien aus, habe jedoch unter Linux leider keine Ahnung davon.

Kann mir jemand kurz auf die Sprünge helfen, wie ich den Vergleich der Uptime realisieren kann?

Falls jemand einen anderen Vorschlag für die Umsetzung hat, bin ich für alles offen (außer SSH Zugriff via Internet).

Grüße,
Alex
 

xabano

Benutzer
Mitglied seit
17. Aug 2008
Beiträge
411
Punkte für Reaktionen
0
Punkte
22
Mit dem Befehl uptime erhälst du die Laufzeit. Da du nur die Stunden willst kann man diese z.B. mit awk herausfiltern:
Rich (BBCode):
uptime | awk -F" " '{print $(NF-5)}' | awk -F: '{print $(NF-1)}'

Mit einer if-Anweisung kannst du damit die DS herunterfahren, wenn sie lange genug läuft:
Rich (BBCode):
if [ $(uptime | awk -F" " '{print $(NF-5)}' | awk -F: '{print $(NF-1)}') -ge 1 ]
   then poweroff
fi

-ge 1 bedeutet grösser oder gleich 1

Wenn du das Script mit Cronjob laufen lassen willst, solltest du für die Befehle den absoluten Pfad angeben. Den kannst du mit which abfragen (z.B. which uptime)
 

black8

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
18
Punkte für Reaktionen
0
Punkte
0
Danke für die Antwort, das werde ich gleich heute Abend mal einprogrammieren und testen.

So langsam finde ich echt gefallen an den Cronjobs, kann man die AudioStation auch via Terminal steuern? Dann könnte man die DS als Radiowecker verwenden.

Gruß Alex.
 
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