DSM 6.x und darunter Aufgabenplaner - Aufgabe "nach dem Hochfahren" ausführen & Aufgaben nachholen

Alle DSM Version von DSM 6.x und älter
Status
Für weitere Antworten geschlossen.

dariusmk

Benutzer
Mitglied seit
16. Okt 2017
Beiträge
110
Punkte für Reaktionen
3
Punkte
18
Aufgabenplaner - Aufgabe "nach dem Hochfahren" ausführen & Aufgaben nachholen

Hallo,

ich möchte eine Aufgabe "nach dem Hochfahren" der Diskstation ausführen. Leider bietet der Aufgabenplaner unter "ausgelöste Aufgaben" nur die Möglichkeit, eine Aufgabe "beim Hochfahren" oder "beim Herunterfahren" auszuführen.

Gibt es einen Trick, eine Aufgabe erst "nach dem Hochfahren" auszuführen?

Außerdem würde mich interessieren, ob es im Aufgabenplaner eine Möglichkeit gibt, eine Aufgabe, die zu einem bestimmten Zeitpunkt nicht ausgeführt werden konnte, zum nächst möglichen Zeitpunkt auszuführen.

Beispiel: Ich lege eine Aufgabe im Aufgabenplaner an und lege den Ausführungszeitpunkt auf 14 Uhr fest. Die Aufgabe wird jedoch um 14 Uhr nicht ausgeführt, weil die Diskstation nicht eingeschaltet ist. Die Aufgabe soll in diesem Fall zum nächst möglichen Zeitpunkt ausgeführt werden, z. B. wenn ich die Diskstation um 15 Uhr einschalte.

Über einen Hinweis würde ich mich freuen.

VG
dariusmk
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.215
Punkte für Reaktionen
509
Punkte
174
"Beim Hochfahren" bedeutet für mich, dass der Job ausgeführt wird, wenn alle Resourcen verfügbar sind.
Ich unterstelle mal, dass Du ein Script ausführen möchtest.
Dort Script kannst Du ganz vorne noch einen 'SLEEP $SEKUNDEN' einfügen, wenn Du das noch später haben möchtest.

Und für Deinen zweiten Fall würde ich sagen, lege zwei Jobs an.
Ein Job startet beim Hochfahren und der zweite Job startet das gleiche Script zu deiner fixen Uhrzeit.
Falls Du eine Überschneidung vermeiden möchtest, dann überlege Dir, ob Du noch eine DATEI erzeugst, solange der Job rennt. Wenn es diese Datei schon gibt, dann würde der gleiche Job nicht nochmal zeitgleich ausgeführt.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.101
Punkte für Reaktionen
253
Punkte
129
Zu deinem Beispiel von oben: dafür würde ja wieder "nach dem Hochfahren" reichen? Wenn die Diskstation um 15:00 startet, wird wieder dein Skript ausgeführt.

Eine etwas andere Variante wäre, dein Skript alle 15 Minuten laufen lassen. Dann eine Datei prüfen, ob die letzte Aktualisierung (touch) länger als xy Minuten zurück ist und dann ausführen. Am Ende wieder die Datei mit touch aktualisieren.
 

dariusmk

Benutzer
Mitglied seit
16. Okt 2017
Beiträge
110
Punkte für Reaktionen
3
Punkte
18
Hallo,

danke für Deine Hilfe.

Ja genau, ich möchte ein Skript ausführen. Dieses liegt in einem Unterverzeichnis von /volume1/. Wenn ich das Skript manuell als admin starte (durch Klick auf den Button "ausführen" im Aufgabenplaner), wird es ausgeführt. Wenn ich das Skript per "ausgelöster Aufgabe" als admin beim Hochfahren ausführen möchte, wird es nicht ausgeführt.

Meine Vermutung ist, dass das Skript beim Hochfahren nicht ausgeführt wird, weil /volume1/ noch nicht eingebunden ist. Ich möchte deshalb ein zweites Skript erstellen. Dieses zweite Skript besteht nur aus dem von Dir vorgeschlagenen Befehl "sleep 60" und wird vor dem ersten Skript ausgeführt.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.101
Punkte für Reaktionen
253
Punkte
129
Nein das kann es eigentlich nicht sein.
Habe so wie du ein Skript, welches unter /volume1/ abgelegt ist, und das wird definitiv beim Starten ausgeführt.

Kann es sein, dass du das Skript noch nicht mit dem richtigen User ausführst im Aufgabenplaner?
Evt. mal die Ausgabe in eine Datei umleiten und das Log dann ansehen.
 

dariusmk

Benutzer
Mitglied seit
16. Okt 2017
Beiträge
110
Punkte für Reaktionen
3
Punkte
18
Es geht um den Start eines JDownloaders beim Hochfahren der Diskstation. Den JDownloader habe ich nicht als fertiges Paket über das Paketzentrum installiert, sondern manuell von Hand als admin.

Das auszuführende Skript hat den folgenden Inhalt:

#!/bin/sh
JAVA_HOME=/volume1/@appstore/java8/ejdk1.8.0_161/linux_i586/jre
export JAVA_HOME
cd /volume1/@appstore/JDownloader
umask 000
$JAVA_HOME/bin/java -jar JDownloader.jar >/dev/null 2>/dev/null &

Der JDownloader wird auch brav gestartet, wenn ich eine Aufgabe mit diesem Skript im Aufgabenplaner manuell ausführe (durch Klick auf "ausführen"). Leider funktioniert das Skript jedoch nicht als "ausgelöste Aufgabe" "beim Hochfahren". Als Benutzer habe ich admin angegeben.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.101
Punkte für Reaktionen
253
Punkte
129
Habe ich soweit schon alles verstanden, manuell klappts... okay.

Ich würde des Output mal in eine Datei anstatt von den beiden /dev/null umleiten. Irgendwas wird schon anders sein beim Hochfahren, ohne Log wirds aber schwierig.
 

dariusmk

Benutzer
Mitglied seit
16. Okt 2017
Beiträge
110
Punkte für Reaktionen
3
Punkte
18
Wie muss der Befehl aussehen, den ich für's Umleiten in eine Datei eingeben muss?
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.101
Punkte für Reaktionen
253
Punkte
129
In deinem Fall vorübergehend mal die /dev/null ändern auf /volume1/pfad/datei.txt ändern.
 

dariusmk

Benutzer
Mitglied seit
16. Okt 2017
Beiträge
110
Punkte für Reaktionen
3
Punkte
18
Das Skript start.sh wird im Aufgabenplaner leider weiterhin nicht ausgeführt, wenn ich es im Aufgabenplaner als "ausgelöste Aufgabe" -> "benuterdefiniertes Skript" anlege mit dem Trigger "Hochfahren". Es wird selbst dann nicht ausgeführt, wenn ich es nach dem Hochfahren manuell starte (durch Mausklick auf "Ausführen" im Aufgabenplaner). Auch eine log.txt Datei wird nicht erstellt.

Seltsam: Wenn ich dasselbe Skript im Aufgabenplaner als "geplante Aufgabe" -> "benutzerdefiniertes Skript" anlege, funktioniert es ohne Probleme.

Ich denke, ich werde akzeptieren müssen, dass das Skript als "ausgelöste Aufgabe" nicht ausgeführt werden kann, warum auch immer.

Danke an alle für die Hilfestellungen.
 

dariusmk

Benutzer
Mitglied seit
16. Okt 2017
Beiträge
110
Punkte für Reaktionen
3
Punkte
18
Ok. Habe es jetzt hinbekommen. Das Problem besteht darin, dass der Aufgabenplaner das Skript beim Hochfahren nur als "root" ausführt und nicht als "admin". Meines Erachtens ein klarer Bug der DSM, der behoben werden sollte.
 
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