Hallo zusammen,
ich bin neu hier und wende mich an euch, weil ich nicht verstehe warum das Script nicht funktioniert.
In diesem Blog bin ich auf eine Möglichkeit gestoßen, dass die DS bei nichtgebrauch automatisch heruntergefahren wird und theorethisch auch wieder gestartet wird.
Nun zu meinem Problem bei diesem Script
Wenn der Counter überschritten wurde dann soll das Python Script ausgeführt werden.
Es holt alle zukünftigen Aufnahmezeiten von Tvheadend und sollte sie in die Datei power_ssched.conf schreiben.
Das Python Script funktioniert, habe es mit Telnet getestet aber die Weiterleitung an die poer_sched.conf will nicht klappen auch nicht wenn ich nur den Befehl "/volume1/homes/admin/bin/pvr-poweron.py > /etc/power_sched.conf" in Telnet eingebe funktionert es nicht.
Testweise habe ich eine andere Datei erstellt und wollte testen ob es damit funktionert aber das funktioniert auch nicht.
Hier der Aufruf: /volume1/Gemeinsamer_Ordner/_Tools/shutdown-script.log > /volume1/Gemeinsame
r_Ordner/_Tools/test.log 2> /volume1/Gemeinsamer_Ordner/_Tools/fehler.log
Die test.log ist leer dafür steht das in der fehler.log:
Der Inhalt der shutdown-script.log ist folgender:
Irgendwie funktioniert der Weiterleitungsbefehl bei mir nicht, was mache ich falsch?
Testweise habe ich noch folgenden Befehl probiert: ls > /volume1/Gemeinsamer_Ordner/_Tools/test.log
Dann habe ich den Inhalt vom Verzeichnis in der test.log
Ich bin mit meinem Wissen am Ende und hoffe irgendjemand kann mir weiterhelfen.
Danke und Gruß
Florian
ich bin neu hier und wende mich an euch, weil ich nicht verstehe warum das Script nicht funktioniert.
In diesem Blog bin ich auf eine Möglichkeit gestoßen, dass die DS bei nichtgebrauch automatisch heruntergefahren wird und theorethisch auch wieder gestartet wird.
Nun zu meinem Problem bei diesem Script
Rich (BBCode):
#!/bin/sh
LOGFILE="/volume1/Gemeinsamer_Ordner/_Tools/shutdown-script.log"
#LOGFILE=/dev/null
COUNTFILE=/volume1/homes/admin/bin/shutdown-counter
log() {
echo `date +%c` $1 >> $LOGFILE
}
cancel() {
[ -f $COUNTFILE ] && rm $COUNTFILE
sleep 5
exit 0
}
##########################################
# Hier ist Platz für die einzelnen Checks
##########################################
# Terminate early if stopfile exists
STOPFILE=/volume1/homes/admin/bin/shutdown-no
if [ -e $STOPFILE ]; then
log "Stopfile exists. Doing nothing."
cancel
fi
# Timecheck
uptime=$(cat /proc/uptime)
uptime=${uptime%%.*}
minutes=$(( uptime/60 ))
if [ $minutes -lt 30 ]; then
log "Online since only $minutes minutes. Doing nothing."
cancel
fi
# Check if synolocalbkp is running
#if [ "$(pidof synolocalbkp)" ]; then
# log "Backup is running"
# cancel
#fi
# Check if there is a connection via Webinterface or in of the Apps
#if netstat | grep '192.168.1.1:https\|192.168.1.1:5000\|192.168.1.1:5001\|192.168.1.1:5006\|192.168.1.1:9981\' | grep ESTABLISHED > /dev/null; then
# log "Active connection to HTTPS, WebDAV or other DSM App"
# cancel
#fi
# Check if one of the ACTIVEHOSTS has an open connection
#ACTIVEHOSTS="192.168.1.11 192.168.1.14"
#for host in $ACTIVEHOSTS ; do
# if netstat -n | grep ' '$host':.*ESTABLISHED' > /dev/null; then
# log "$host currently accessing NAS"
# cancel
# fi
#done
# Check if Tvheadend is recording
URL=192.168.178.1
PORT=9981
USERNAME=benutzer
PASSWORD=passwort
OUTPUT=$(curl -u $USERNAME:$PASSWORD --silent --max-time 5 "http://$URL:$PORT/status.xml")
if [ -z "$OUTPUT" ]; then
log "tvheadend ist not responding."
#log "Tvheadend is not responding, restarting it."
#kill -9 $(pidof tvheadend)
#sleep 5
#/var/packages/tvheadend/scripts/start-stop-status start
elif echo $OUTPUT | grep "<status>Recording</status>" > /dev/null; then
log "Tvheadend is recording"
cancel
#elif ! echo $OUTPUT | grep "<subscriptions>0</subscriptions>" > /dev/null; then
# log "Tvheadend is active"
# cancel
fi
#till=$(echo $OUTPUT | grep next | sed -e 's,.*<next>\([^<]*\)</next>.*,\1,g')
#if [ -z "${till##*[!0-9]*}" ]; then
# log "No recording sheduled"
#elif [ $till -lt 90 ]; then
# log "Next recording starts in $till minutes. Doing nothing."
# cancel
#fi
# Pingcheck - should be performed last
#PINGHOSTS="192.168.1.11 192.168.1.14"
#for host in $PINGHOSTS ; do
# if ping -c 1 -w 1 $host > /dev/null; then
# log "$host isn't offline"
# cancel
# fi
#done
##########################################
# und vorbei
##########################################
# Increment counter if all checks failed
echo >>$COUNTFILE
COUNTER=`ls -la $COUNTFILE | awk '{print $5}'`
log "NAS has been idle for $COUNTER checks"
# Shutdown NAS if counter has already been incremented 10 times
if [ $COUNTER -gt 2 ]; then
log "updating power on time for tvheadend"
#/volume1/homes/admin/bin/pvr-poweron.py > /etc/power_sched.conf
#/volume1/homes/admin/bin/pvr-poweron.py > /volume1/Gemeinsamer_Ordner/_Tools/test.log 2> /volume1/Gemeinsamer_Ordner/_Tools/fehler.log
log "shutdown Diskstation"
rm $COUNTFILE
#/sbin/poweroff
fi
Wenn der Counter überschritten wurde dann soll das Python Script ausgeführt werden.
Es holt alle zukünftigen Aufnahmezeiten von Tvheadend und sollte sie in die Datei power_ssched.conf schreiben.
Das Python Script funktioniert, habe es mit Telnet getestet aber die Weiterleitung an die poer_sched.conf will nicht klappen auch nicht wenn ich nur den Befehl "/volume1/homes/admin/bin/pvr-poweron.py > /etc/power_sched.conf" in Telnet eingebe funktionert es nicht.
Testweise habe ich eine andere Datei erstellt und wollte testen ob es damit funktionert aber das funktioniert auch nicht.
Hier der Aufruf: /volume1/Gemeinsamer_Ordner/_Tools/shutdown-script.log > /volume1/Gemeinsame
r_Ordner/_Tools/test.log 2> /volume1/Gemeinsamer_Ordner/_Tools/fehler.log
Die test.log ist leer dafür steht das in der fehler.log:
Rich (BBCode):
/volume1/Gemeinsamer_Ordner/_Tools/shutdown-script.log: line 1: Tue: not found
/volume1/Gemeinsamer_Ordner/_Tools/shutdown-script.log: line 2: Tue: not found
/volume1/Gemeinsamer_Ordner/_Tools/shutdown-script.log: line 3: Tue: not found
Der Inhalt der shutdown-script.log ist folgender:
Rich (BBCode):
Tue Dec 30 16:49:01 2014 NAS has been idle for 3 checks
Tue Dec 30 16:49:01 2014 updating power on time for tvheadend
Tue Dec 30 16:49:01 2014 shutdown Diskstation
Irgendwie funktioniert der Weiterleitungsbefehl bei mir nicht, was mache ich falsch?
Testweise habe ich noch folgenden Befehl probiert: ls > /volume1/Gemeinsamer_Ordner/_Tools/test.log
Dann habe ich den Inhalt vom Verzeichnis in der test.log
Ich bin mit meinem Wissen am Ende und hoffe irgendjemand kann mir weiterhelfen.
Danke und Gruß
Florian