Hi,
aufgrund einiger Probleme mit meiner eSATA verbindung zur Dreambox bin ich derzeit erst mal wieder auf mein NAS ausgewichen. Das NAS, ne Buffalo Linkstation Live 1TB, verfügt über einen "Auto-Modus" der das NAS nach 3 min abschaltet sofern es kein Magic Packet empfängt. Soweit, sogut... ich habe nun einen cronjob eingerichtet der unten aufgeführtes Script alle 2 min ausführt. In wie weit belastet denn ein solches Script eigentlich den Flash Baustein der Box. Ich war immer der Meinung das nur eine begrenzte Anzahl von Lese/Schreibvorgängen auf so einem Flash Speicher möglich ist und wenn dem so wäre dann würde es die Lebenserwartung des Chips drastisch senken wenn ein Script alle 2 min einen Zugriff startet.
Alles anzeigen
aufgrund einiger Probleme mit meiner eSATA verbindung zur Dreambox bin ich derzeit erst mal wieder auf mein NAS ausgewichen. Das NAS, ne Buffalo Linkstation Live 1TB, verfügt über einen "Auto-Modus" der das NAS nach 3 min abschaltet sofern es kein Magic Packet empfängt. Soweit, sogut... ich habe nun einen cronjob eingerichtet der unten aufgeführtes Script alle 2 min ausführt. In wie weit belastet denn ein solches Script eigentlich den Flash Baustein der Box. Ich war immer der Meinung das nur eine begrenzte Anzahl von Lese/Schreibvorgängen auf so einem Flash Speicher möglich ist und wenn dem so wäre dann würde es die Lebenserwartung des Chips drastisch senken wenn ein Script alle 2 min einen Zugriff startet.
Shell-Script
- #!/bin/sh
- #
- SERVERNAME=10.0.0.1
- MOUNTPOINT=/media/net/NAS
- SERVERSHARE=//10.0.0.1/dreamhdd
- UN=username
- PW=password
- NOW=`date +%s`
- ## dirty check for standby
- if [ "$(cat /proc/stb/avs/0/input | grep encoder)" ]
- then
- ## send a magic packet to wakeup/keep alive the NAS always
- echo "Dreambox not in Standby! -> send WOL Package to NAS"
- python /usr/script/nas-wol.py
- ## check if the mountpoint is already mounted
- if [ "$(df | grep $SERVERSHARE)" ];
- then
- ## if so ... do nothing and exit
- echo "$MOUNTPOINT already mounted -> exit(0)"
- exit 0
- else
- ## if not ... try to mount the share
- echo -n "$MOUNTPOINT not mounted -> trying to mount "
- mount -t cifs $SERVERSHARE $MOUNTPOINT -o username=$UN,password=$PW,rw
- ## report results
- if [ "$(df | grep $SERVERSHARE)" ]
- then
- echo "-> success"
- exit 0
- else
- echo "-> failed"
- exit 1
- fi
- fi
- else
- echo "Dreambox is in Standby!"
- ## check if the timers.xml is empty.... (size of 42 Bytes)
- if [ "$(ls -l /etc/enigma2/timers.xml | grep 42)" ]
- then
- echo "/etc/enigma2/timers.xml is empty -> exit(0)"
- exit 0
- else
- ## check if timers.xml exists
- if [ "$(ls /etc/enigma2 | grep timers.xml)" ]
- then
- ## if so ... check the upcoming timers to start in $TRESHOLD seconds (600 = 10 min)
- COUNT=0
- TIMER=/etc/enigma2/timers.xml
- THRESHOLD=600
- TIMERBEGINS=`grep begin $TIMER |sed 's/.*begin="//' | sed 's/".*//'`
- echo "Check for upcoming timers..."
- for START in $TIMERBEGINS
- do
- echo -n "Timer: $START, "
- # diff is timer start time - current time
- DIFF=$(($START-$NOW))
- echo "Diff to now: $DIFF"
- # if diff is greater 0 then the timer has not been processed yet
- if [ $DIFF -gt 0 ]
- then
- echo "Timer is not processed yet."
- # if diff is less then $TRESHOLD then the timer will start soon
- if [ $DIFF -le $THRESHOLD ]
- then
- echo -n "Timer is starting soon -> wakeup Dreambox from Standby "
- wget -q -O- http://127.0.0.1/web/powerstate?newstate=0
- echo "-> send WOL to NAS"
- python /usr/script/nas-wol.py
- fi
- else
- # count the processed timers here
- echo "Timer already processed."
- COUNT=$(( $COUNT + 1 ))
- fi
- done
- # if there are processed timers in list we do a cleanup
- # timers.xml will then have size 42 again if empty
- if [ $COUNT -gt 0 ]
- then
- echo "Timer cleanup..."
- wget -q -O- http://127.0.0.1/web/timercleanup?cleanup=true
- wget -q -O- http://127.0.0.1/web/timerlistwrite?write=true
- fi
- else
- echo "timers.xml does not exist."
- exit 1
- fi
- fi
- fi