Business Script was NAS herunterfährt, wenn das Backup erfolgreich ist?

Zottelhias

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
93
Punkte für Reaktionen
2
Punkte
8
Hallo und einen guten Morgen.
Noch ein gutes Neus und allen viel Gesundheit und Freude.

Meine Konstulation
NAS02 = Datengrab -> zu sicherndes NAS
NAS01 = Backup-NAS -> sichert NAS02 über Active Backup for Business

Was ich vorhabe
Ich suche nach einer Möglichkeit ein Script zu schreiben, welches bei Erfolgreichem bestehen eines Backups durch Activ Backup for Business ein sauberes Herunterfahren in die wege leitet.
Leider weis ich nicht was für eine Scriptsprache ich dafür verwenden kann und mir fehlen Ansätze, wie ich das realsieren könnte. Da ich wenig scripting Erfahhrung habe, bin ich für bsp. Ansätze dankbar.

Fragen
1. Scriptsprache?
2. und 3. Ist es überhaupt möglich die Info "Erfolgreich" abzugreifen und wenn ja, wie würdet ihr dort vorgehen und vorallem wo würdet ihr nach der Info suchen?
4. bis X. Fragen die sich aus dem Textteil "Was ich vorhabe" ergeben?

Ich freue mich auf eure Unterstützung und eine rege Beteiligung.
 

Flessi

Benutzer
Mitglied seit
14. Sep 2012
Beiträge
431
Punkte für Reaktionen
53
Punkte
34
Mein Backup-NAS (DS415+) fährt nach dem Backup nach einer eingestellten Zeit der Inaktivität automatisch in den Ruhemodus und das unabhängig von der Dauer des Backups. Wenn du soetwas willst, benötigst du kein Script.
 

Zottelhias

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
93
Punkte für Reaktionen
2
Punkte
8
Die Frage ist wie man "Aus" bzw. Herunterfahren definiert.

Meine definition ist:
Herunterfahren gleich Aus
Ruhemodus ungleich Aus
 
Zuletzt bearbeitet von einem Moderator:

Kachelkaiser

Benutzer
Sehr erfahren
Mitglied seit
22. Feb 2018
Beiträge
1.185
Punkte für Reaktionen
379
Punkte
109
Du kannst aber irgendwo noch definieren, ab welchem Zeitpunkt im Ruhemodus die DS dann total runtergefahren werden soll. Ich habe das bei mir auf der Backup DS auch so eingestellt und funktioniert super.
 

Flessi

Benutzer
Mitglied seit
14. Sep 2012
Beiträge
431
Punkte für Reaktionen
53
Punkte
34
In der Systemsteuerung wird das "Automatisches Ausschalten aktivieren" genannt.
Die DS kann dann danach zeitgesteuert oder per WOL wieder gestartet werden.
Bei "Hardware & Energie" die Startzeit einstellen und bei "Ruhezustand der Festplatte" "Automatisches Ausschalten der Festplatte" aktivieren.
 

Anhänge

  • 2023-01-18 11_15_57-BU-Server - Synology DiskStation – Mozilla Firefox.png
    2023-01-18 11_15_57-BU-Server - Synology DiskStation – Mozilla Firefox.png
    38,8 KB · Aufrufe: 23
  • 2023-01-18 11_18_16-BU-Server - Synology DiskStation – Mozilla Firefox.png
    2023-01-18 11_18_16-BU-Server - Synology DiskStation – Mozilla Firefox.png
    11,3 KB · Aufrufe: 21

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Laut den Möglichkeiten von shtudown sehe ich nur --poweroff oder --halt.

Code:
shutdown [OPTIONS...] [TIME] [WALL...]

Shut down the system.

     --help      Show this help
  -H --halt      Halt the machine
  -P --poweroff  Power-off the machine
  -r --reboot    Reboot the machine
  -h             Equivalent to --poweroff, overridden by --halt
  -k             Don't halt/power-off/reboot, just send warnings
     --no-wall   Don't send wall message before halt/power-off/reboot
  -c             Cancel a pending shutdown

Musst einfach mal ausprobieren ob eines der beiden Optionen dem "Automatisches Ausschalten aktivieren" entspricht und es per WOL wieder gestartet werden kann.
 

Zottelhias

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
93
Punkte für Reaktionen
2
Punkte
8
Vielen Dank für die Zahlreichen Kommentare.

Jetzt muss ich nur noch herausdinden, wie ich über eine if abfrage das Protokoll auf Erfolg einer Sicherung auswerten kann und davon abhängig das System ausschalte.

Die verwendete Script-Sprache ist bei den Synoy meine ich Bash oder gibt es hier eine Abweichung?
 

BirdofPrey

Benutzer
Contributor
Mitglied seit
17. Jan 2015
Beiträge
193
Punkte für Reaktionen
29
Punkte
34
Geht das nicht einfach über den Aufgabenplaner mit einer Ausschaltzeit oder mehreren. Die wirkt ja nur wenn gerade kein Job läuft.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
Laut den Möglichkeiten von shutdown sehe ich nur --poweroff oder --halt.
Synology hat dafür was eigenes:
Code:
synoshutdown --help
Copyright (c) 2003-2021 Synology Inc. All rights reserved.

Shutdown system.

Usage: synoshutdown --help
Usage: synoshutdown {--shutdown | --reboot}
    -h, --help      Show this message.
    -s, --shutdown  Properly shutdown system.
    -r, --reboot    Reboot system.

If critical operation is in progress,
it may be unable to shutdown or reboot.

For SHA cluster, it will shutdown or reboot both servers.
Hinweis: Da ich noch DSM v6.x verwende, kann ich nicht sagen, ob der Befehl unter DSM v7.x auch noch vorhanden ist.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Synology hat dafür was eigenes
Besten Dank für den Hinweis! Ich habe das gerade überprüft und es ist auch auf DSM v7.x vorhanden.

Jetzt wäre es interessant zu wissen was alles unter die Kategorie critical operation fällt.
Und selbst wenn ein Hyper Backup Task dazugehört, stellt sich die Frage ob der shutdown Befehl einfach nicht ausgeführt wird oder ob er später ausgeführt wird sobald die Aufgabe abgeschlossen ist.

Oder wie schon erwähnt müsste man den shtudown request in regelmäßigen Abständen absenden.

Mir persönlich wäre im Allgemeinen eine Auskunft über einen abgeschlossenen Task lieber als permanent zu versuchen einen Shutdown Request abzusetzen. Aber auch ich kenne aktuell keine Möglichkeit zu prüfen ob ein Backup Job noch läuft.
 
  • Like
Reaktionen: peterhoffmann

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
  • Like
Reaktionen: luddi

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Es gibt sogar noch eine Alternative die ich soeben entdeckt habe:

Code:
synopoweroff -h
DS shutdown progress feasible check.
Default: Check poweroff feasibility and shutdown if pass checks.

usage: synopoweroff [OPTIONS]

  -h            display this help
  -f            do reboot/shutdown WITHOUT feasibility check and WITHOUT DSM auto update
  -r            do reboot rather than shutdown
  -s            do ups safe shutdown
  -d            debug mode
                Check poweroff feasibility and reboot if pass checks.
                Will not stop synorelayd, sshd, and telnet.

Wenn ich das richtig interpretiere müsste es hiermit wohl funktionieren. Das system fährt herunter sobald alle checks abgeschlossen sind. Könnte sein dass hier so lange gewartet wird bis ein Hyper Backup Task abgeschlossen ist.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Hiermit kann man es auch versuchen wenn man das selbst in die Hand nehmen möchte und den Status überprüfen möchte.

Es gibt folgenden Befehl:
Code:
$ synoschedtask --help
Copyright (c) 2003-2022 Synology Inc. All rights reserved.

Usage: synoschedtask
        --get [<id=x> <state=disabled|enabled> <owner=x> <type=once|yearly|monthly|weekly|daily> <running=true|false>]
        --del <id=x>
        --run <id=x> [check_time=0|1(default)] [check_status=0|1(default)]
        --reset-status
        --sync
        --help

Wenn man generell herausfinden möchte ob irgendeine geplante Aufgabe läuft kann man das wie folgt eingeben und bekommt als Beispiel das hier:

Code:
$ synoschedtask --get running=true
             User: [root]
               ID: [41]
             Name: [NextCloud <Instance_XXX> cron.php]
            State: [enabled]
            Owner: [root]
             Type: [daily]
       Start date: [0/0/0]
         Run time: [0]:[0]
Repeat every [5] min (s) until [23]:[55]
          Command: [/bin/su -s /bin/sh -c "/usr/local/bin/php80 -f /var/services/web/nextcloud/<instance_xxx>/cron.php" http]
    Last Run Time: Thu Jan 19 14:50:01 2023
           Status: [Running]
              Pid: [22351]

Wenn während der Abfrage kein Task läuft so ist die Ausgabe "leer".

Man kann aber auch gezielt eine einzelne ID Abfragen
Code:
synoschedtask --get id=41 running=true

Somit könnte man seine eigene Logik zusammenbauen und entscheiden wann das System herunter gefahren werden darf.
Wie man sieht gibt es schon einige Möglichkeiten die man anwenden kann um zum Ziel zu gelangen.

Und weil viele Wege bekanntlich nach Rom führen kann man sich einen dieser Möglichkeiten auswählen wie es einem selbst am liebsten ist.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Ach und nicht zu vergessen, hiermit kann man sich alle verfügbaren HyperBackup Tasks ganz rudimentär ausgeben lassen.

Code:
synoschedtask --get | grep -B 8 -A 1 "/var/packages/HyperBackup"

Hierbei wird man feststellen dass es neben den eigentlichen backup jobs /var/packages/HyperBackup/target/bin/dsmbackup auch die Integritätsprüfung (so jedenfalls meine Annahme) gibt /var/packages/HyperBackup/target/bin/detect_monitor.

Hier ein Auszug als Beispiel:
Code:
             User: [root]
               ID: [5]
             Name: [<TASK_NAME>]
            State: [enabled]
            Owner: [root]
             Type: [daily]
       Start date: [0/0/0]
         Run time: [22]:[40]
          Command: [/var/packages/HyperBackup/target/bin/dsmbackup --backup 165]
           Status: [Not Available]


               ID: [6]
             Name: [<TASK_NAME>]
            State: [enabled]
            Owner: [root]
             Type: [weekly]
       Start date: [0/0/0]
     Days of week: [Sun]
         Run time: [1]:[10]
          Command: [/var/packages/HyperBackup/target/bin/detect_monitor -t -k 165 -f -T -1]
           Status: [Not Available]

Somit kann die entsprechende ID des jeweiligen Tasks herausgefunden werden welche man überwachen möchte bevor das System ausgeschaltet wird.
 

Zottelhias

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
93
Punkte für Reaktionen
2
Punkte
8
Ein dickes Danke an alle!

Mit Putty konnte ich nun Pfade ausmachen, wo die logs von ABFB abgelegt werden - siehe Bild.
1674860471992.png
In die Dateien habe ich mittels vi auch Einsicht bekommen. Entweder ich finde nicht die richtigen Dateien die, die Erfolgsmeldungen beinhalten oder ich bin blind.
Hat von Euch jemand Rat?
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.151
Punkte für Reaktionen
1.115
Punkte
314
Hi!

Entweder ich finde nicht die richtigen Dateien die, die Erfolgsmeldungen beinhalten...
Falls du damit die DSM-Benachrichtigungen meinst, die oben rechts unter dem Sprechblasensymbol als Popup ausgegeben werden, dann schaust du wohl am falschen Ort. Hier müsstest du mal einen Blick nach /var/packages/ActiveBackup/target/ui/texts/ger werfen und dort dann die Datei strings öffnen. Jedoch wird dir das nicht viel bringen, da der Aufruf solch einer Benachrichtigung über AktiveBackup selbst angesteuert wird. Wie genau das funktioniert, kannst du z.B. hier nachlesen.

Du könntest dein Vorhaben evtl. über das Auswerten aktiver bzw. inaktiver Prozesse lösen. Dafür müsstest du aber herausfinden, welcher Prozess (Name) genau bei deinem Backup gestartet wird, welchen du dann mit einem Script überwachen könntest. Ich hab so eine Prozessüberwachung für eine meiner selbstgeschriebenen Apps zwar schon mal umgesetzt, jedoch wusste ich dabei immer den Namen des Prozesses, welcher grade läuft oder auch nicht.

Oder du versuchst es mal den Tipps von @luddi aus dem Beiträgen #13 und #14. Klingt in der Theorie auf jeden Fall machbar, vor allem zielführendender als über eine klassische Prozessüberwachung.

Tommes
 
Zuletzt bearbeitet:

Zottelhias

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
93
Punkte für Reaktionen
2
Punkte
8
@Tommes
Danke für den Hinweis.

Es gibt vier Orte über die WEB-GUI herrauszufinden, mit welchem Ergebnis ein Backup abgeschlossen wurde.

Im gestarteten ABFB:
1. Synology NAS > Reiter: "DSM"
2. Synology NAS > Reiter: "Aufgabenliste" > Details > Reiter: "Status"
3. Synology NAS > Reiter: "Aufgabenliste" > Details > Reiter: "Protokoll"
4. Aktivitäten > Reiter: "Aufgabenverlauf"

Meine Vermutung ist:
Diese vier Übersichten beziehen ihre Infos aus einer Protokol-Datei oder Protokoll-DatenBank, die die Infos vorhält.

Wenn ich nun wüsste wo die Info in ihrer ursprünglichen quelle ist, will ich hier einen abgleich startetn, dass wenn die Sicherung mit dem Heutigen Datum geklappt hat (Erfolgreich ist etc.), sich die Syno abschaltet.

Also aufgrund der Information in einem Protokoll das ABFB selber anlegt, will ich das herunterfahren steuern, nach dem der Abgleich entsprechnde Information gefunden hat und halt auch übereinstmmt - also "wahr" ist.

Leider habe ich keine Ahnung wo die Syno die Infos speichert.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.151
Punkte für Reaktionen
1.115
Punkte
314
Protokolle werden i.d.R. unter /var/log gespeichert. Da ich jedoch nicht mit Active Backup arbeite, kann ich dir den genauen Ort nicht nennen. Ich halte dein Vorgehen aber für keine so gut Idee. Dann eher so wie @luddi Vorgeschlagen hat, oder durch das Auslesen der Prozessliste, so wie ich vorhin meinte.
 

Zottelhias

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
93
Punkte für Reaktionen
2
Punkte
8
@Tommes
Danke für den Hinweis.

Anhand des Processes kann ich nicht ablesen ob es funktioniert hat. Der Process wird schließlich auch dann beendet, wenn es nicht hingehauen hat oder irre ich mich da?
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.151
Punkte für Reaktionen
1.115
Punkte
314
Du irrst dich nicht. Aber was möchtest du tun, sollte der Prozess bzw. der Backupdurchlauf nicht funktioniert haben? Willst du ihn dann automatisch oder manuell wiederholen? Oder einfach das NAS nicht ausschalten?
 


 

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