eMail bei USV-Einsatz

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

SHCSHC

Benutzer
Registriert
12. Feb. 2009
Beiträge
196
Reaktionspunkte
10
Punkte
24
Hallo,

ich nutze eine DS-408 zusammen mit der USV APC CS650. Beides funktioniert sehr gut zusammen.

Für den Protokollversand habe ich auch die eMail-Funktion eingerichtet, dadurch erhalte ich z.B. eine Nachricht bei erfolgreichen Backupaktionen.

Im Protokoll habe ich nun entdeckt, dass die USV desöfteren angesprungen ist - offenbar haben wir öfters Stromschwankungen im Haus. Da ich tagsüber nicht da bin, habe ich das nicht bemerkt.

Kann ich mir eine eMail schicken lassen, sobald die USV genutzt wird? Ich finde hierfür keine Einstellungsmöglichkeit.


Vielen Dank für Eure Hilfe,
Christian
 
Hallo! Hast Du bezüglich Deiner Frage mittlerweile eine Lösung gefunden? Sowas suche ich nämlich auch.
 
Nein, leider nicht.

SHC
 
Schickt doch solche Vorschläge mal direkt an Synology. Die haben eigentlich immer ein offenes Ohr für solche Sachen.
 
In Englisch? - Hilfe!
Und an welche Adresse?
 
ich auch ;-)

sie wollen die Anfrage prüfen und evtl. in ein späteres Firmware-Update übernehmen.


SHC
 
Hallo zusammen.

Ich arbeite bei APC, falls ich euch von unserer Seite helfen kann. Wir haben z.B. ein kleines Test-Lab, an das Synology Anlagen schicken kann, um die Kompatibilität zu dokumentieren.

Gruß
meeshaa
 
Vielleicht lässt sich ja in die Runlevel-Skripte was einbauen? Oder in den deamon der das überwacht?
(setzt allerdings voraus das ihr euch ein wenig mit der Kommandozeile auseinandersetzt)

MfG Matthieu
 
Hallo zusammen.

Ich arbeite bei APC, falls ich euch von unserer Seite helfen kann. Wir haben z.B. ein kleines Test-Lab, an das Synology Anlagen schicken kann, um die Kompatibilität zu dokumentieren.

Gruß
meeshaa

Dies ist sehr nett. Leider gibt es hier im Forum keine Synology-Mitarbeiter - ist ja ein reines Community-Forum. So kann diese Anregung nicht aufgenommen werden. Besser wäre, wenn du diese Möglichkeit im internationalen Synology-Forum posten würdest; dort wird mitgelesen ... ;)

Itari
 
...geht klar! ;-)

@Matthieu: unsere Software wird zentral entwickelt, außerhalb unserer bescheidenen Landesgrenzen. Die Jungs sind fit, aber ich denke, dass die Kommunikation in dieser Konstellation von der DS kommen muß. Ist die USV mit dem PC verbunden, geht das ja.

meeshaa
 
...geht klar! ;-)

@Matthieu: unsere Software wird zentral entwickelt, außerhalb unserer bescheidenen Landesgrenzen. Die Jungs sind fit, aber ich denke, dass die Kommunikation in dieser Konstellation von der DS kommen muß. Ist die USV mit dem PC verbunden, geht das ja.
Ja ich weiß, war auch eher an die beiden Fragesteller gerichtet. Die DS bemerkt ja auch sobald sich der "Zustand" ändert. Und wenn man dort eine kleine Zeile einbaut, dann wäre das mit der Mail bestimmt machbar. Aber es ist halt nicht sehr einfach weil man etwas tiefer ins System muss.

MfG Matthieu
 
Ich ebenfalls .... ;-)

SHC
 
Hallo Zusammen.
Ich suche auch nach einer Möglichkeit wie mich meine DS210j auf einen Stromausfall aufmerksam macht.
In der /usr/syno/bin/synoups
habe ich was von upssafemode und anderem gelesen.

Aber wo sollte ich den nun Mailfunktion einbauen? Geht das mit einer php Datei?

Gruß Stefan
 
Das Problem hierbei dürfte der SafeMode sein. Sobald die DS im SafeMode ist, hat sie keine Möglichkeit mehr per Mail irgendwas zu verschicken (der Dienst läuft ja nicht mehr und alle Datenvolumes sind ausgehängt).
Es würde dann wohl nur beim anschliessenden Reboot gehen, dass man eine Mail verschickt. Ob die DS nach dem Reboot aber noch "weiss", dass sie einen Stromausfall hatte, weiss ich auch ned ;)
 
Bei dem Aufruf der Funktion werden du dienste ja erst abgeschaltet. Im das maß zu testen, wie kann ich denn aus einem script eine php Datei ausfuhren lassen?
Geht das mit wget?
 
Geht das mit wget?
Ginge auch mit wget. Allerdings ist das imho ein Overkill ein lokales Script via http aufzurufen.
Die DS hat den php Interpreter bereits mit in der Firmware. Du kannst also ein Script z.B. so ausführen
Code:
/usr/bin/php /path/to/file.php
mit dem Pfad zum Interpreter bin ich ned ganz sicher. Den findest du allerdings schnell mit
Code:
which php
oder du legst das php File schon folgendermassen an
Code:
#!/usr/bin/php

<?php
echo 'Hallo Welt';
?>
und machst es mittels chmod +x ausführbar. Dann kannst du das Script auch ohne Angabe des Interpreters direkt aus einem Shellscript aufrufen
 
Script ausführen per ./sriptname.php geht nun.
Jetzt bin ich mir aber doch nicht sicher wo ich es am besten einbaue.
Ich habe den haken bei "USV herunterfahren, wenn das System in den Sicheren Modus geht." nicht gesetzt, da meine FritBox noch bis Batterieende in betrieb bleiben soll.
Hier mal der code der /usr/syno/bin/synoups
Rich (BBCode):
DiskStation> cat /usr/syno/bin/synoups
#!/bin/sh
# Copyright (c) 2008-2009 Synology Inc. All rights reserved.

if [ "x$1" = "x" -o "x$1" = "x-h" ]; then
        echo "Copyright (c) 2008-2009 Synology Inc. All rights reserved."
        echo "Usage: `basename $0` { online | lowbatt | nocomm | fsd }"
        exit
fi

UPSMaster=`/bin/get_key_value /etc/synoinfo.conf upsmaster`
case "${UPSMaster}" in
[Yy][Ee][Ss])
        UPSMaster=1
        EnabledKey="ups_enabled"
        UPSMonServer="localhost"
        ;;
*)
        UPSMaster=0
        EnabledKey="upsslave_enabled"
        UPSMonServer=`/bin/get_key_value /etc/synoinfo.conf upsslave_server`
        if [ "x$UPSMonServer" = "x" ]; then
                UPSMonServer="localhost"
        fi
        ;;
esac

UPSEnabled=`/bin/get_key_value /etc/synoinfo.conf ${EnabledKey}`
case "$UPSEnabled" in
[Yy][Ee][Ss])
        ;;
*)
        echo "UPS is not enable."
        exit
        ;;
esac

UPSSafeShutdown=`/bin/get_key_value /etc/synoinfo.conf ups_safeshutdown`
case "${UPSSafeShutdown}" in
[Nn][Oo])
        UPSSafeShutdown=0;;
*)
        UPSSafeShutdown=1;;
esac

SZF_SAFEMODE="/tmp/ups.safedown"

SYSLOG() {
        logger -p user.err -t synoups "$1"
}

UPSStatusGet() {
        ups_stat=`/usr/syno/bin/upsc ups@${UPSMonServer} ups.status 2>/dev/null`
        if [ $? -ne 0 ]; then
                echo "ERR"
                return 255
        fi
        for status in $ups_stat ; do
                case "$status" in
                "OL"|"OB"|"LB")
                        echo "$status"
                        return
                        ;;
                esac
        done
        echo "ERR"
}

UPSShutdown() {
        if [ $UPSMaster -ne 1 ]; then
                echo "Slave waits for safe shutdown" >> $SZF_SAFEMODE
                touch /.NormalShutdown
                SYSLOG "UPS waits for safe shutdown."
                return
        fi
        OL=0
        LB=0
        while [ $OL -ne 2 -a $LB -ne 2 ]; do
                sleep 10
                St=`UPSStatusGet`
                if [ "$St" = "OL" ]; then
                        OL=`expr $OL + 1`
                        LB=0
                else
                        LB=`expr $LB + 1`
                        OL=0
                fi
                echo "OL=$OL LB=$LB" >> $SZF_SAFEMODE
        done
        if [ $OL -eq 2 ]; then
                synologset1 sys warn 0x11300012
                echo "UPS back to On-Line and reboot." >> $SZF_SAFEMODE
                reboot
        elif [ $LB -eq 2 ]; then
                touch /.NormalShutdown
                if [ $UPSSafeShutdown -eq 0 ]; then
                        echo "Waiting UPS exhausted." >> $SZF_SAFEMODE
                        SYSLOG "Waiting UPS exhausted."
                else
                        echo "UPS safe shutdown." >> $SZF_SAFEMODE
                        SYSLOG "UPS safe shutdown."
                        killall upssched
                        killall upsmon
                        killall upsd
                        /usr/syno/bin/upsdrvctl stop
                        /usr/syno/bin/upsdrvctl shutdown
                fi
        fi
}

UPSSafeMode() {
        if [ -f $SZF_SAFEMODE ]; then
                return
        fi
        St=`UPSStatusGet`
        if [ "$St" = "OL" ]; then
                echo "WARNING: UPS is On-Line"
                return
        fi
        echo "$1" > $SZF_SAFEMODE

        synologset1 sys warn 0x11300011
        SYSLOG "UPS going to stop all services and umount all volumes."

        killall -9 mplayer
        loop=0
        while [ $loop -lt 5 ]; do
                mplayer_pids=`pidof mplayer`
                if [ $? -ne 0 ]; then
                        break
                fi
                for pid in $mplayer_pids ; do
                        kill -9 $pid
                done
                loop=`expr $loop + 1`
        done

        for s in `ls /usr/local/etc/rc.d/*`; do
                $s stop > /dev/null 2>&1
        done
        for s in `ls /usr/syno/etc/rc.d/S*.sh | sort -r`; do
                case "`basename $s`" in
                S02hotplugd.sh)
                        ;;
                *)
                        $s stop > /dev/null 2>&1
                        ;;
                esac
        done

        for v in `grep volume /proc/mounts | awk '{print $2}'`; do
                umount -f $v
        done

        echo "7" > /dev/ttyS1
        sync; sync; sync;

        echo "Stop all services and umount all volumes" >> $SZF_SAFEMODE
        UPSShutdown
}

UPSRestart() {
        if [ ! -f $SZF_SAFEMODE ]; then
                return
        fi
        echo "UPS back on-line, so wait to reboot" >> $SZF_SAFEMODE
        sleep 30
        St=`UPSStatusGet`
        if [ "$St" = "OL" ]; then
                synologset1 sys warn 0x11300012
                SYSLOG "UPS back to On-Line and reboot."
                reboot
        fi
}

case "$1" in
online)
        UPSRestart
        ;;
lowbatt | nocomm)
        UPSSafeMode $1
        ;;
fsd)
        /usr/syno/sbin/upsmon -c fsd
        UPSSafeMode $1
        ;;
esac

Ich dachte erst hier
Rich (BBCode):
SYSLOG "UPS going to stop all services and umount all volumes."

aber ich denke das wird nur ausgelöst, wenn die USV (UPS) in den safe mode geht. Außerdem wäre es ja gut wenn die Mail gesendet wird, sobald der Strom weg ist, und nicht erst wenn die Diskstation runterfährt.
 
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