rolu2
Teammitglied
- Registriert
- 16. November 2009
- Beiträge
- 9.093
- Lösungen
- 4
- Reaktionspunkte
- 4.662
- Punkte
- 393
Moin Zusammen
Da meine Clienten mit ihrer Dreambox nicht in der Lage sind ihre Senderliste zu aktualisieren.( Denke die Problme kennt ihr )
Habe ich mir vor langer Zeit ein scipt erstellt, welches über cron aufgerufen wird um z.B 20 Uhr Die Vorlage dazu ist aus dem Netz
Vorgehensweise
Die
muss nach
Rechte 755
Die
muss nach
Rechte 755. Sollte der Ordner script nicht vorhanden sein, anlegen
Der croneintrag könnte so aussehen
Die
kommt auf den externen FTP
Jetzt noch die
mit einem linuxfähigen Editor bearbeiten. Hier sind nur 2 Zeilen zu ändern
Wie ihr seht, ist die Abfrage zum FTP-Server User und Passwortgeschützt im scipt. Wer das nicht möchte lässt
weg
Was muss nun getan werden, das die Freude eine neue Senderliste bekommen, wenn Alles richtig eingerichtet ist
Nicht viel. Es muss eine neue senderliste.zip auf den Externen FTP geschoben werden und die datei time in der ersten Teile um einen Wert erhöht werden
Was macht das script nun.
Jeweils um 20 Uhr wird die Datei i
vom Server geladen und mit der
vergleichen. Ist die Zahl darin gleich passiert nix. Ist die Zahl darin grösser. Wird eine Meldung am TV angezeigt, das eine neue Kanalliste gefunden wurde. Hier wird jetzt gefragt, ob man updaten will. Bei Nein, passiert nix. Bis auf das am nächsten Tag wieder gefragt wird. Bei JA wird das script ausgeführt und jeder Abschnitt am TV angezeigt. Sollte zu wenig Speicherplatz vorhanden sein, wird das update gar nicht erst gestartet (Ausgabe am TV) Sollte beim Updaten was schief laufen, wird die Sicherung der vorher angelegten alten Senderliste wieder eingespielt
So wie hier markieren und packen als .zip
Da meine Clienten mit ihrer Dreambox nicht in der Lage sind ihre Senderliste zu aktualisieren.( Denke die Problme kennt ihr )
Habe ich mir vor langer Zeit ein scipt erstellt, welches über cron aufgerufen wird um z.B 20 Uhr Die Vorlage dazu ist aus dem Netz
Vorgehensweise
Die
Code:
timelu
Code:
/etc/
Die
Code:
kanallisteupdater.sh
Code:
/usr/script/
Der croneintrag könnte so aussehen
Code:
* 20 * * * /usr/script/kanallisteupdater.sh
Die
Code:
senderliste.zip und time
Jetzt noch die
Code:
kanallisteupdater.sh
SE="http://USERASSWORT@DYNDNSORT/ORDNER/senderliste.zip -O $TMP/senderliste.zip"
TI="http://USERASSWORT@DYNDNSORT/ORDNER/time.txt -O $TMP/time.txt"
Wie ihr seht, ist die Abfrage zum FTP-Server User und Passwortgeschützt im scipt. Wer das nicht möchte lässt
Code:
USER:PASSWORT@
Was muss nun getan werden, das die Freude eine neue Senderliste bekommen, wenn Alles richtig eingerichtet ist
Nicht viel. Es muss eine neue senderliste.zip auf den Externen FTP geschoben werden und die datei time in der ersten Teile um einen Wert erhöht werden
Was macht das script nun.
Jeweils um 20 Uhr wird die Datei i
Code:
time
Code:
timelu
Code:
* 20 * * * /usr/script/kanallisteupdater.sh
Code:
1
Code:
2
Code:
#!/bin/sh
#erstellt von rolu2
#
TMP=/tmp
BACKUP=Kanallistensicherung
GRENZE=96
AKTUELL=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
#
#das script ist auf zip-datein ausgelegt
#
#Hier tragt ihr eure URL ein,von wo aus runtergeladen werden soll + wohin gespeichert werden soll. Hier nach /var/volatile/tmp/name.zip
SE="http://USER:PASSWORT@DYNDNS:PORT/ORDNER/senderliste.zip -O $TMP/senderliste.zip"
TI="http://USER:PASSWORT@DYNDNS:PORT/ORDNER/time.txt -O $TMP/time.txt"
#
#
#Downloaden von time.txt vom Server
wget $TI
chmod 755 $TMP/time.txt
#Speichern des Inhalts von timelu.txt und time in einer Variablen
export timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
export timen=$(cat /tmp/time.txt | head -n1 | tail -n1)
#Vergleich: Ist timelu kleiner als timen ?#
if [ $timelu -lt $timen ]; then
#Abfrage ob Update starten soll
wget -q -O - "http://127.0.0.1/web/message?text=Eine%20neue%20Senderliste%20steht%20bereit.\nSoll%20das%20Update%20gestartet%20werden?&type=0&timeout=10"
# Wird umgschalten auf nein, Anzeige bleibt aber stehen
wget -O /dev/null "http://127.0.0.1/web/remotecontrol?command=109" -q
sleep 10
rm -rf $TMP/answer
wget -O $TMP/answer "http://127.0.0.1/web/messageanswer?getanswer=now" -q
answer1=$(cat "$TMP/answer" | grep -o YES)
sleep 2
answer2=$(cat "$TMP/answer" | grep -o JA)
if [ "$answer1" = YES ] || [ "$answer2" = JA ];then
#Speicherplatz wird überprüft
wget -q -O - "http://127.0.0.1/web/message?text=Speicherplatz%20wird%20berechnet.&type=1&timeout=5"
sleep 5
if [ "$AKTUELL" -gt "$GRENZE" ] ; then
wget -q -O - "http://127.0.0.1/web/message?text=Nicht%20genug%20Speicherplatz%20vorhanden.%20Senderlistenaktualisierung%20wird%20beendet&type=1&timeout=5"
else
wget -q -O - "http://127.0.0.1/web/message?text=Es%20steht%20genug%20Speicherplatz%20zur%20Verfügung%20Senderlistenaktualisierung%20startet&type=1&timeout=5"
#Download der Senderliste vom Server
wget $SE
sleep 2
fi
fi
fi
sleep 2
#Speichern der time.txt in timelu.txt
#rm -rf /etc/timelu.txt
#mv /tmp/time.txt /tmp/timelu.txt
#mv /tmp/timelu.txt /etc
#rm -rf /tmp/timelu.txt
#sleep 2
if [ -e $TMP/senderliste.zip ]; then
wget -q -O - "http://127.0.0.1/web/message?text=Neue%20Senderliste%20wurde%20runtergeladen&type=1&timeout=5"
sleep 5
wget -q -O - "http://127.0.0.1/web/message?text=Sicherung%20der%20aktuellen%20Senderliste%20gestartet&type=1&timeout=5"
mkdir $TMP/$BACKUP
mv /etc/enigma2/*.tv $TMP/$BACKUP
mv /etc/enigma2/*.radio $TMP/$BACKUP
mv /etc/enigma2/blacklist $TMP/$BACKUP
mv /etc/enigma2/whitelist $TMP/$BACKUP
mv /etc/enigma2/lamedb $TMP/$BACKUP
mv /etc/tuxbox/satellites.xml $TMP/$BACKUP
mv /etc/tuxbox/terrestrial.xml $TMP/$BACKUP
mv /etc/tuxbox/cables.xml $TMP/$BACKUP
sleep 5
wget -q -O - "http://127.0.0.1/web/message?text=Neue%20Senderliste%20wird%20eingespielt&type=1&timeout=5"
unzip -oq $TMP/senderliste.zip -d /etc/enigma2
sleep 5
mv /etc/enigma2/satellites.xml /etc/tuxbox
mv /etc/enigma2/terrestrial.xml /etc/tuxbox
mv /etc/enigma2/cables.xml /etc/tuxbox
#Speichern der time.txt in timelu.txt
rm -rf /etc/timelu.txt
mv /tmp/time.txt /tmp/timelu.txt
mv /tmp/timelu.txt /etc
rm -rf /tmp/timelu.txt
rm -rf $TMP/senderliste.zip
sleep 5
if [ -e /etc/enigma2/lamedb ]; then
wget -q -O - "http://127.0.0.1/web/message?text=Aktualisierung%20abgeschlossen.%20Sicherung%20wird%20entfernt.\nSenderliste%20wurde%20neu%20geladen%20und%20steht%20nun%20zur%20Verfügung.&type=1&timeout=5"
else
wget -q -O - "http://127.0.0.1/web/message?text=Aktualisierung%20fehlgeschlagen.%20Sicherung%20wird%20eingespielt.\nSenderliste%20wurde%20neu%20geladen%20und%20steht%20nun%20zur%20Verfügung.&type=1&timeout=5"
sleep 1
rm -rf /etc/enigma2/*.tv /etc/enigma2/*.radio /etc/enigma2/blacklist /etc/enigma2/whitelist /etc/enigma2/lamedb
rm -rf /etc/tuxbox/satellites.xml /etc/tuxbox/terrestrial.xml /etc/tuxbox/cables.xml
sleep 2
mv $TMP/$BACKUP/*.tv /etc/enigma2
mv $TMP/$BACKUP/*.radio /etc/enigma2
mv $TMP/$BACKUP/blacklist /etc/enigma2
mv $TMP/$BACKUP/whitelist /etc/enigma2
mv $TMP/$BACKUP/lamedb /etc/enigma2
mv $TMP/$BACKUP/satellites.xml /etc/tuxbox
mv $TMP/$BACKUP/terrestrial.xml /etc/tuxbox
mv $TMP/$BACKUP/cables.xml /etc/tuxbox
fi
fi
sleep 1
#neue Senderliste und lamedb wird neu geladen
wget -O /dev/null "http://127.0.0.1/web/servicelistreload?mode=0" -q
sleep 1
rm -rf $TMP/$BACKUP
So wie hier markieren und packen als .zip
Du musst Regestriert sein, um das angehängte Bild zusehen.
Anhänge
Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet: