AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen
So habe mal die Scripte angepasst vlt für den ein oder anderen Hilfreich. Es wird automatisch eine VPN Verbindung aufgebaut/beendet und per FTP vom Server gezogen.
Habe paar Verwandte dir verstreut wohnen und sich nicht so gut auskennen.
Settings werden von mir am PC bearbeitet mit Dreamset und diese werden direkt per SMB/SAMBA auf /var/www/Settings in die passenden Ordner gelegt.
Dort habe ich dann jeweils ein pack_astra_e1.sh, pack_astra_e2 usw. dieser packt es in eine enigma1.tar.gz oder enigma2.tar.gz und erstellt die time.txt mit.
Diese liegen momentan auf dem Server in /usr/sbin/ << momentan sind diese in ipc jobs angelegt und werden bei bedarf aktiviert das in der Nacht gepackt wird
Die get_Script_bq.sh wird auf der Dreambox abgelegt. z.B Mein Bekannter holt sich Hotbird dazu und hatte vorher nur Astra e2 dann lege ich die neue get_bq.sh für Hotbird e2 in sein Ordner und er holt sich diese mit Download-Script_bq
Beispiel ipc-jobs.sh für pack_astra_e1.sh
#Wenn es gepackt werden soll # vor 59 23 * * .... entfernen
#Pack Astra e1
#59 23 * * * root /usr/sbin/pack_astra_e1.sh #Pack Astra e1 (Taeglich um 23:59)
Habe ein FTP und OpenVPN (freetz) erstellt
Dreambox:
get_Scipt_bq unter:
/usr/script
get_bq.sh unter:
/usr/script
get_CCcam.cfg unter:
/usr/script
VPN-freetz.ovpn unter:
/etc/openvpn
vpn.sh unter:
/usr/script
Benutzer:
dreambox - zum Settings Downloaden
client1 - zum Script get_bq.sh und CCcam.cfg Downloaden
client2 - zum Script get_bq.sh und CCcam.cfg Downloaden
client3 - zum Script get_bq.sh und CCcam.cfg Downloaden
client4 - zum Script get_bq.sh und CCcam.cfg Downloaden
Ordner auf FTP Server
/var/www/Settings/Astra_e1 << nur Astra für e1
/var/www/Settings/Asrra_e2 << nur Astra für e2
/var/www/Settings/Hotbird_e1 << mit Hotbird für e1
/var/www/Settings/Hotbird_e2 << mit Hotbird für e2
/var/www/client1/CCcam.cfg -- wird bei Änderung für client1 abgelegt.
/var/www/client1/time_ccc.txt -- diese ist manuell anzupassen wenn neue CCcam.cfg abelegt wird im format 201308201238 (YYYYMMMMDDDDHHHHMMMM)
/var/www/client1/script/get_bq.sh -- get_bq.sh für Astra e1 oder Hotbird e1 ... ablegen, Kann z.b bei Receiver wechsel neuen get_bq.sh für Astras e2 oder Hotbird e2 ablegen.
/var/www/client1/script/time_bq.txt -- gleiches wie bei time_ccc.txt
/var/www/client2 .... siehe client1
Bei allen Download Scripten ist nach der Befehl:
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
sleep 30 << damit VPN Verbindung in Ruhe aufbauen kann
Download-Script_bq
get_Script_bq.sh
Download-Settings (e1 Astra)
get_bq.sh (für e1)
Downloads-Settings (e2 Astra)
get_bq.sh (für e2)
Download-Settings (e1 Hotbird)
get_bq.sh
Download-Settings (e2 Hotbird)
get_bq.sh
vpn.sh um VPN aufzubauen und abzubauen
Download-CCcam_cfg (für client1)
get_CCcam.sh
pack_astra_e1.sh
pack_astra_e2.sh
pack_hotbird_e1
pack_hotbird_e2.sh
VPN-freetz.ovpn (client1 Dreambox)
Und unter Erweiterungen angelegt siehe Bild
Danke nicht vergessen.
Edit: Fehler gefunden, Wenn aus irgendein Grund Das script abbricht bleibt die VPN Verbindung erhalten. Werde das mal ansehen.
Update: Lösung VPN Verbindung wird abgebaut bei Fehlermeldung.
Update 24.08.2013 - Update 1.2
cron_bq.sh für Hotbird_e1
Update 22.08.2013: Version 1.1 > man kann jetzt im Script auswählen ob VPN gewünscht oder nicht
get_bq.sh (e1 Astra, e2 Astra, e1 Hotbird und e2 Hotbird) Version 1.1
get_CCcam.sh Version 1.1
get_Script_bq.sh Version 1.1
So habe mal die Scripte angepasst vlt für den ein oder anderen Hilfreich. Es wird automatisch eine VPN Verbindung aufgebaut/beendet und per FTP vom Server gezogen.
Habe paar Verwandte dir verstreut wohnen und sich nicht so gut auskennen.
Settings werden von mir am PC bearbeitet mit Dreamset und diese werden direkt per SMB/SAMBA auf /var/www/Settings in die passenden Ordner gelegt.
Dort habe ich dann jeweils ein pack_astra_e1.sh, pack_astra_e2 usw. dieser packt es in eine enigma1.tar.gz oder enigma2.tar.gz und erstellt die time.txt mit.
Diese liegen momentan auf dem Server in /usr/sbin/ << momentan sind diese in ipc jobs angelegt und werden bei bedarf aktiviert das in der Nacht gepackt wird
Die get_Script_bq.sh wird auf der Dreambox abgelegt. z.B Mein Bekannter holt sich Hotbird dazu und hatte vorher nur Astra e2 dann lege ich die neue get_bq.sh für Hotbird e2 in sein Ordner und er holt sich diese mit Download-Script_bq
Beispiel ipc-jobs.sh für pack_astra_e1.sh
#Wenn es gepackt werden soll # vor 59 23 * * .... entfernen
#Pack Astra e1
#59 23 * * * root /usr/sbin/pack_astra_e1.sh #Pack Astra e1 (Taeglich um 23:59)
Habe ein FTP und OpenVPN (freetz) erstellt
Dreambox:
get_Scipt_bq unter:
/usr/script
get_bq.sh unter:
/usr/script
get_CCcam.cfg unter:
/usr/script
VPN-freetz.ovpn unter:
/etc/openvpn
vpn.sh unter:
/usr/script
Benutzer:
dreambox - zum Settings Downloaden
client1 - zum Script get_bq.sh und CCcam.cfg Downloaden
client2 - zum Script get_bq.sh und CCcam.cfg Downloaden
client3 - zum Script get_bq.sh und CCcam.cfg Downloaden
client4 - zum Script get_bq.sh und CCcam.cfg Downloaden
Ordner auf FTP Server
/var/www/Settings/Astra_e1 << nur Astra für e1
/var/www/Settings/Asrra_e2 << nur Astra für e2
/var/www/Settings/Hotbird_e1 << mit Hotbird für e1
/var/www/Settings/Hotbird_e2 << mit Hotbird für e2
/var/www/client1/CCcam.cfg -- wird bei Änderung für client1 abgelegt.
/var/www/client1/time_ccc.txt -- diese ist manuell anzupassen wenn neue CCcam.cfg abelegt wird im format 201308201238 (YYYYMMMMDDDDHHHHMMMM)
/var/www/client1/script/get_bq.sh -- get_bq.sh für Astra e1 oder Hotbird e1 ... ablegen, Kann z.b bei Receiver wechsel neuen get_bq.sh für Astras e2 oder Hotbird e2 ablegen.
/var/www/client1/script/time_bq.txt -- gleiches wie bei time_ccc.txt
/var/www/client2 .... siehe client1
Bei allen Download Scripten ist nach der Befehl:
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
sleep 30 << damit VPN Verbindung in Ruhe aufbauen kann
Download-Script_bq
get_Script_bq.sh
Code:
#!/bin/sh
#
# Download der get_bq.sh (Senderliste aktualisierung)
# Downloads, Installs the latest get_bq.sh
#
#
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="ftp://192.168.11.3"
# Der Port eures Webservers (standard: 80)
SERVERport="21"
# Das Verzeichnis in dem die script Datei auf dem Webserver liegt
SERVERdir="script"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME="client1"
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD="test"
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time_bq.txt"
# Datei und Ordner für get_bq.sh
BQsh="get_bq.sh"
BQshdir="/usr/script"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="0"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="1"
#
## Ende der Konfiguration
#
#VPN Verbindung aufbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
else
echo ""
fi
#prepare url
case $SERVERurl in
[hH][tT][tT][pP]*|[fF][tT][pP]*)
URLprot="$(echo $SERVERurl | cut -d ":" -f 1)://"
URL=$(echo $SERVERurl | cut -d ":" -f 2 | tr -d "//")
;;
*)
URL=$SERVERurl
;;
esac
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
URL="$USERNAME:$PASSWORD@$URL"
fi
[ ! -z "$SERVERport" ] && URL="$URL:$SERVERport"
[ ! -z "$URLprot" ] && URL=$URLprot$URL
TEMPdir=/tmp
WGETo="-q"
[ -z "$COLORED" ] && COLORED=0
#- functions
#aufräumen
_cleanup() {
rm -f $TEMPdir/$ST
rm -f $TEMPdir/$BQsh
}
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
#VPN Verbindung wegen eines Fehlers abbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird wegen eines Fehlers abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
exit 1
fi
}
#downloaden von time.txt
downtimetxt() {
#Downloaden von time_bq.txt vom Server
wget $WGETo $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download time_bq.txt erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehler aufgetreten (download $ST)"
fi
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehler aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time_bq.txt in einer Variablen
timen=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
#Speichern der time_bq.txt-variable in timelu_bq.txt
savetimetxt() {
echo "$timen" > /etc/timelu_bq.txt
}
#download and install Bouquets
downinstCCC() {
TYPE=$1
#Download der Senderliste vom Server
wget $WGETsettings $URL/$SERVERdir/$BQsh
_error $? "Es ist ein Fehler aufgetreten (download $CCC)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$BQsh" ]; then
_error 1 "Es ist ein Fehler aufgetreten ($CCC wurde nicht heruntergeladen)"
fi
cd $BQshdir
rm -f $BQsh
mv -f $TEMPdir/$BQsh $BQshdir
chmod 777 $BQshdir/$BQsh
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/CCcam.cfg nach /etc)"
_cleanup
#Speichern der time_bq.txt in timelu_bq.txt
savetimetxt
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mScript $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Script $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um CCcam $TYPE wirksam zu machen"
sleep 3
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
}
#- main code
echo "Pruefe ob ein Update des Scriptes noetig ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu_bq.txt überhaupt vorhanden ist
if [ -f "/etc/timelu_bq.txt" ]; then
#Speichern des Inhalts von timelu_bq.txt in einer Variablen
timelu=$(cat /etc/timelu_bq.txt | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von /etc/timelu_bq.txt)"
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#Vergleich: Ist timelu kleiner als timen?
if [ $timelu -lt $timen ]; then
echo "Update vom $(date -d @$timen +"%d.%m.%Y um %H:%M") vorhanden.. Starte Update"
echo " "
#download and update bouquets
downinstCCC
else
#Timen ist kleiner oder gleich groß wie timelu
echo "Script ist aktuell. Kein Update noetig"
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
fi
else
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time_bq.txt vom Server
downtimetxt
#download and install Script
echo "Starte Script Install"
echo " "
downinstCCC
fi
exit 0
Download-Settings (e1 Astra)
get_bq.sh (für e1)
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma Bouquets. version: 1.1
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma1"
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="ftp://192.168.11.3"
# Der Port eures Webservers (standard: 80)
SERVERport="21"
# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="Astra_e1"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME="dreambox"
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD="0000"
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time.txt"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="0"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="1"
#
## Ende der Konfiguration
#
#VPN Verbindung wird aufbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
else
echo ""
fi
#prepare url
case $SERVERurl in
[hH][tT][tT][pP]*|[fF][tT][pP]*)
URLprot="$(echo $SERVERurl | cut -d ":" -f 1)://"
URL=$(echo $SERVERurl | cut -d ":" -f 2 | tr -d "//")
;;
*)
URL=$SERVERurl
;;
esac
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
URL="$USERNAME:$PASSWORD@$URL"
fi
[ ! -z "$SERVERport" ] && URL="$URL:$SERVERport"
[ ! -z "$URLprot" ] && URL=$URLprot$URL
TEMPdir=/tmp
WGETsettings="-q"
FILES2="satellites.xml terrestrial.xml cables.xml timezone.xml"
[ -z "$COLORED" ] && COLORED=0
#- functions
#aufräumen
_cleanup() {
rm -rf $TEMPdir/$ENIGMA
rm -f $TEMPdir/$ST
rm -f $TEMPdir/$BQ
}
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
#VPN Verbindung wegen eines Fehlers abbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird wegen eines Fehlers abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
exit 1
fi
}
#downloaden von time.txt
downtimetxt() {
#Downloaden von time.txt vom Server
wget $WGETsettings $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehler aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time.txt in einer Variablen
timen=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
#Speichern der time.txt-variable in timelu.txt
savetimetxt() {
echo "$timen" > /etc/timelu.txt
}
#download and install Bouquets
downinstBQ() {
TYPE=$1
#Download der Senderliste vom Server
wget $WGETsettings $URL/$SERVERdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (download $BQ)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$BQ" ]; then
_error 1 "Es ist ein Fehler aufgetreten ($BQ wurde nicht heruntergeladen)"
fi
#Entpacken
tar -zxf $BQ
_error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"
if [ "$ENIGMA" = "enigma2" ]; then
PakValidated=0
for file in $FILES2; do
if [ -f "$TEMPdir/$ENIGMA/$file" ]; then
mv -f $TEMPdir/$ENIGMA/$file /etc/tuxbox/
PakValidated=1
fi
done
#prüfen ob der inhalt des enigma2 archives korrekt ist
[ $PakValidated = 0 ] && _error 1 "Das Archive $BQ entspricht nicht den Anforderungen!"
cd /etc/$ENIGMA
rm -f *.tv
rm -f *.radio
rm -f blacklist
rm -f lamedb
mv -f $TEMPdir/$ENIGMA/* /etc/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /etc/$ENIGMA/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
else
cd /var/tuxbox/config/enigma/
rm -f *.tv
rm -f *.radio
rm -f *.epl
rm -f bouquets
rm -f services
rm -f services.locked
mv -f /tmp/$ENIGMA/* /var/tuxbox/config/enigma/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /var/tuxbox/config/enigma/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
fi
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "/etc/enigma2/" ] && ENIGMA="enigma2"
[ -d "/var/tuxbox/config/enigma/" ] && ENIGMA="enigma1"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
echo "Pruefe ob ein Update der Bouquets noetig ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu.txt überhaupt vorhanden ist
if [ -f "/etc/timelu.txt" ]; then
#Speichern des Inhalts von timelu.txt in einer Variablen
timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von /etc/timelu.txt)"
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#Vergleich: Ist timelu kleiner als timen?
if [ $timelu -lt $timen ]; then
echo "Update vom $(date -d @$timen +"%d.%m.%Y um %H:%M") vorhanden.. Starte Update"
echo " "
#download and update bouquets
downinstBQ Update
else
#Timen ist kleiner oder gleich groß wie timelu
echo "CCcam.cfg aktuell. Kein Update noetig"
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird beendet"
/usr/script/vpn.sh stop
else
echo ""
fi
fi
else
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#download and install bouquets
echo "Starte Bouquets Install"
echo " "
downinstBQ Install
fi
exit 0
Downloads-Settings (e2 Astra)
get_bq.sh (für e2)
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma Bouquets. version: 1.1
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma2"
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="ftp://192.168.11.3"
# Der Port eures Webservers (standard: 80)
SERVERport="21"
# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="Astra_e2"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME="dreambox"
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD="0000"
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time.txt"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="0"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="1"
#
## Ende der Konfiguration
#
#VPN Verbindung wird aufbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
else
echo ""
fi
#prepare url
case $SERVERurl in
[hH][tT][tT][pP]*|[fF][tT][pP]*)
URLprot="$(echo $SERVERurl | cut -d ":" -f 1)://"
URL=$(echo $SERVERurl | cut -d ":" -f 2 | tr -d "//")
;;
*)
URL=$SERVERurl
;;
esac
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
URL="$USERNAME:$PASSWORD@$URL"
fi
[ ! -z "$SERVERport" ] && URL="$URL:$SERVERport"
[ ! -z "$URLprot" ] && URL=$URLprot$URL
TEMPdir=/tmp
WGETsettings="-q"
FILES2="satellites.xml terrestrial.xml cables.xml timezone.xml"
[ -z "$COLORED" ] && COLORED=0
#- functions
#aufräumen
_cleanup() {
rm -rf $TEMPdir/$ENIGMA
rm -f $TEMPdir/$ST
rm -f $TEMPdir/$BQ
}
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
#VPN Verbindung wegen eines Fehlers abbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird wegen eines Fehlers abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
exit 1
fi
}
#downloaden von time.txt
downtimetxt() {
sleep 15
#Downloaden von time.txt vom Server
wget $WGETsettings $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehler aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time.txt in einer Variablen
timen=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
#Speichern der time.txt-variable in timelu.txt
savetimetxt() {
echo "$timen" > /etc/timelu.txt
}
#download and install Bouquets
downinstBQ() {
TYPE=$1
#Download der Senderliste vom Server
wget $WGETsettings $URL/$SERVERdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (download $BQ)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$BQ" ]; then
_error 1 "Es ist ein Fehler aufgetreten ($BQ wurde nicht heruntergeladen)"
fi
#Entpacken
tar -zxf $BQ
_error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"
if [ "$ENIGMA" = "enigma2" ]; then
PakValidated=0
for file in $FILES2; do
if [ -f "$TEMPdir/$ENIGMA/$file" ]; then
mv -f $TEMPdir/$ENIGMA/$file /etc/tuxbox/
PakValidated=1
fi
done
#prüfen ob der inhalt des enigma2 archives korrekt ist
[ $PakValidated = 0 ] && _error 1 "Das Archive $BQ entspricht nicht den Anforderungen!"
cd /etc/$ENIGMA
rm -f *.tv
rm -f *.radio
rm -f blacklist
rm -f lamedb
mv -f $TEMPdir/$ENIGMA/* /etc/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /etc/$ENIGMA/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
else
cd /var/tuxbox/config/enigma/
rm -f *.tv
rm -f *.radio
rm -f *.epl
rm -f bouquets
rm -f services
rm -f services.locked
mv -f /tmp/$ENIGMA/* /var/tuxbox/config/enigma/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /var/tuxbox/config/enigma/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
fi
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "/etc/enigma2/" ] && ENIGMA="enigma2"
[ -d "/var/tuxbox/config/enigma/" ] && ENIGMA="enigma1"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
echo "Pruefe ob ein Update der Bouquets noetig ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu.txt überhaupt vorhanden ist
if [ -f "/etc/timelu.txt" ]; then
#Speichern des Inhalts von timelu.txt in einer Variablen
timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von /etc/timelu.txt)"
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#Vergleich: Ist timelu kleiner als timen?
if [ $timelu -lt $timen ]; then
echo "Update vom $(date -d @$timen +"%d.%m.%Y um %H:%M") vorhanden.. Starte Update"
echo " "
#download and update bouquets
downinstBQ Update
else
#Timen ist kleiner oder gleich groß wie timelu
echo "Senderliste aktuell. Kein Update noetig"
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird beendet"
/usr/script/vpn.sh stop
else
echo ""
fi
fi
else
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#download and install bouquets
echo "Starte Bouquets Install"
echo " "
downinstBQ Install
fi
exit 0
Download-Settings (e1 Hotbird)
get_bq.sh
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma Bouquets. version: 1.1
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma1"
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="ftp://192.168.11.3"
# Der Port eures Webservers (standard: 80)
SERVERport="21"
# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="Hotbird_e1"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME="dreambox"
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD="0000"
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time.txt"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="0"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="1"
#
## Ende der Konfiguration
#
#VPN Verbindung aufbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
else
echo ""
fi
#prepare url
case $SERVERurl in
[hH][tT][tT][pP]*|[fF][tT][pP]*)
URLprot="$(echo $SERVERurl | cut -d ":" -f 1)://"
URL=$(echo $SERVERurl | cut -d ":" -f 2 | tr -d "//")
;;
*)
URL=$SERVERurl
;;
esac
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
URL="$USERNAME:$PASSWORD@$URL"
fi
[ ! -z "$SERVERport" ] && URL="$URL:$SERVERport"
[ ! -z "$URLprot" ] && URL=$URLprot$URL
TEMPdir=/tmp
WGETsettings="-q"
FILES2="satellites.xml terrestrial.xml cables.xml timezone.xml"
[ -z "$COLORED" ] && COLORED=0
#- functions
#aufräumen
_cleanup() {
rm -rf $TEMPdir/$ENIGMA
rm -f $TEMPdir/$ST
rm -f $TEMPdir/$BQ
}
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
echo "VPN Verbindung wird wegen eines Fehlers abgebaut"
/usr/script/vpn.sh stop
else
echo "$message"
echo "Abbruch"
#VPN Verbindung wegen eines Fehlers abbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird wegen eines Fehlers abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
fi
exit 1
fi
}
#downloaden von time.txt
downtimetxt() {
#Downloaden von time.txt vom Server
wget $WGETsettings $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehler aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time.txt in einer Variablen
timen=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
#Speichern der time.txt-variable in timelu.txt
savetimetxt() {
echo "$timen" > /etc/timelu.txt
}
#download and install Bouquets
downinstBQ() {
TYPE=$1
#Download der Senderliste vom Server
wget $WGETsettings $URL/$SERVERdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (download $BQ)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$BQ" ]; then
_error 1 "Es ist ein Fehler aufgetreten ($BQ wurde nicht heruntergeladen)"
fi
#Entpacken
tar -zxf $BQ
_error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"
if [ "$ENIGMA" = "enigma2" ]; then
PakValidated=0
for file in $FILES2; do
if [ -f "$TEMPdir/$ENIGMA/$file" ]; then
mv -f $TEMPdir/$ENIGMA/$file /etc/tuxbox/
PakValidated=1
fi
done
#prüfen ob der inhalt des enigma2 archives korrekt ist
[ $PakValidated = 0 ] && _error 1 "Das Archive $BQ entspricht nicht den Anforderungen!"
cd /etc/$ENIGMA
rm -f *.tv
rm -f *.radio
rm -f blacklist
rm -f lamedb
mv -f $TEMPdir/$ENIGMA/* /etc/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /etc/$ENIGMA/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
else
cd /var/tuxbox/config/enigma/
rm -f *.tv
rm -f *.radio
rm -f *.epl
rm -f bouquets
rm -f services
rm -f services.locked
mv -f /tmp/$ENIGMA/* /var/tuxbox/config/enigma/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /var/tuxbox/config/enigma/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
fi
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "/etc/enigma2/" ] && ENIGMA="enigma2"
[ -d "/var/tuxbox/config/enigma/" ] && ENIGMA="enigma1"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
echo "Pruefe ob ein Update der Bouquets noetig ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu.txt überhaupt vorhanden ist
if [ -f "/etc/timelu.txt" ]; then
#Speichern des Inhalts von timelu.txt in einer Variablen
timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von /etc/timelu.txt)"
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#Vergleich: Ist timelu kleiner als timen?
if [ $timelu -lt $timen ]; then
echo "Update vom $(date -d @$timen +"%d.%m.%Y um %H:%M") vorhanden.. Starte Update"
echo " "
#download and update bouquets
downinstBQ Update
else
#Timen ist kleiner oder gleich groß wie timelu
echo "Senderliste aktuell. Kein Update noetig"
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
echo "VPN-Verbindung wird beendet"
/usr/script/vpn.sh stop
else
echo ""
fi
fi
else
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#download and install bouquets
echo "Starte Bouquets Install"
echo " "
downinstBQ Install
fi
exit 0
Download-Settings (e2 Hotbird)
get_bq.sh
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma Bouquets. version: 1.1
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma2"
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="ftp://192.168.11.3"
# Der Port eures Webservers (standard: 80)
SERVERport="21"
# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="Hotbird_e2"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME="dreambox"
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD="0000"
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time.txt"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="0"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="1"
#
## Ende der Konfiguration
#
#VPN Verbindung wird aufbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
else
echo ""
fi
#prepare url
case $SERVERurl in
[hH][tT][tT][pP]*|[fF][tT][pP]*)
URLprot="$(echo $SERVERurl | cut -d ":" -f 1)://"
URL=$(echo $SERVERurl | cut -d ":" -f 2 | tr -d "//")
;;
*)
URL=$SERVERurl
;;
esac
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
URL="$USERNAME:$PASSWORD@$URL"
fi
[ ! -z "$SERVERport" ] && URL="$URL:$SERVERport"
[ ! -z "$URLprot" ] && URL=$URLprot$URL
TEMPdir=/tmp
WGETsettings="-q"
FILES2="satellites.xml terrestrial.xml cables.xml timezone.xml"
[ -z "$COLORED" ] && COLORED=0
#- functions
#aufräumen
_cleanup() {
rm -rf $TEMPdir/$ENIGMA
rm -f $TEMPdir/$ST
rm -f $TEMPdir/$BQ
}
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
#VPN Verbindung wegen eines Fehlers abbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird wegen eines Fehlers abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
exit 1
fi
}
#downloaden von time.txt
downtimetxt() {
#Downloaden von time.txt vom Server
wget $WGETsettings $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehler aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time.txt in einer Variablen
timen=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
#Speichern der time.txt-variable in timelu.txt
savetimetxt() {
echo "$timen" > /etc/timelu.txt
}
#download and install Bouquets
downinstBQ() {
TYPE=$1
#Download der Senderliste vom Server
wget $WGETsettings $URL/$SERVERdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (download $BQ)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$BQ" ]; then
_error 1 "Es ist ein Fehler aufgetreten ($BQ wurde nicht heruntergeladen)"
fi
#Entpacken
tar -zxf $BQ
_error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"
if [ "$ENIGMA" = "enigma2" ]; then
PakValidated=0
for file in $FILES2; do
if [ -f "$TEMPdir/$ENIGMA/$file" ]; then
mv -f $TEMPdir/$ENIGMA/$file /etc/tuxbox/
PakValidated=1
fi
done
#prüfen ob der inhalt des enigma2 archives korrekt ist
[ $PakValidated = 0 ] && _error 1 "Das Archive $BQ entspricht nicht den Anforderungen!"
cd /etc/$ENIGMA
rm -f *.tv
rm -f *.radio
rm -f blacklist
rm -f lamedb
mv -f $TEMPdir/$ENIGMA/* /etc/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /etc/$ENIGMA/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
else
cd /var/tuxbox/config/enigma/
rm -f *.tv
rm -f *.radio
rm -f *.epl
rm -f bouquets
rm -f services
rm -f services.locked
mv -f /tmp/$ENIGMA/* /var/tuxbox/config/enigma/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /var/tuxbox/config/enigma/)"
_cleanup
#Speichern der time.txt in timelu.txt
savetimetxt
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep statetext | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"
sleep 5
#VPN Verbindung beendet
if [ "$VPN" = 1 ]; then
/usr/script/vpn.sh stop
else
echo ""
fi
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
fi
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "/etc/enigma2/" ] && ENIGMA="enigma2"
[ -d "/var/tuxbox/config/enigma/" ] && ENIGMA="enigma1"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
echo "Pruefe ob ein Update der Bouquets noetig ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu.txt überhaupt vorhanden ist
if [ -f "/etc/timelu.txt" ]; then
#Speichern des Inhalts von timelu.txt in einer Variablen
timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von /etc/timelu.txt)"
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#Vergleich: Ist timelu kleiner als timen?
if [ $timelu -lt $timen ]; then
echo "Update vom $(date -d @$timen +"%d.%m.%Y um %H:%M") vorhanden.. Starte Update"
echo " "
#download and update bouquets
downinstBQ Update
else
#Timen ist kleiner oder gleich groß wie timelu
echo "Senderliste aktuell. Kein Update noetig"
#VPN Verbindung beendet
if [ "$VPN" = 1 ]; then
echo "VPN-Verbindung wird beendet"
/usr/script/vpn.sh stop
else
echo ""
fi
fi
else
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time.txt vom Server
downtimetxt
#download and install bouquets
echo "Starte Bouquets Install"
echo " "
downinstBQ Install
fi
exit 0
vpn.sh um VPN aufzubauen und abzubauen
Code:
#!/bin/sh
PIDFILE=/tmp/openvpn-fh.pid
CONFIG=VPN-freetz.ovpn
if [ "$1" != 'start' ] && [ "$1" != 'stop' ]; then
echo "usage: $0 {start|stop}"
exit 1
fi
if [ $(id -u) -ne 0 ]; then
exec sudo $0 $1
exit 1
fi
vpnrunning() {
if [ ! -f $PIDFILE ]; then
return 1
else
pid=$(cat $PIDFILE)
if kill -0 $pid 2>/dev/null ; then
return 0
else
return 1
fi
fi
}
case $1 in
start)
if vpnrunning; then
echo "openvpn already running" >&2
else
exec openvpn --cd /etc/openvpn --config $CONFIG --daemon VPN-freetz --writepid $PIDFILE
fi
;;
stop)
if vpnrunning; then
exec kill $(cat $PIDFILE)
else
echo "openvpn is not running" >&2
fi
;;
esac
Download-CCcam_cfg (für client1)
get_CCcam.sh
Code:
#!/bin/sh
#
#
# Downloads, Installs & Reloads the latest CCcam.cfg
#
#
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="ftp://192.168.11.3"
# Der Port eures Webservers (standard: 80)
SERVERport="21"
# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="client1"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME="client1"
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD="0000"
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time_ccc.txt"
# Datei und Ordner für CCcam.cfg
CCC="CCcam.cfg"
CCCdir="/etc"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="0"
#
## Ende der Konfiguration
#
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
#prepare url
case $SERVERurl in
[hH][tT][tT][pP]*|[fF][tT][pP]*)
URLprot="$(echo $SERVERurl | cut -d ":" -f 1)://"
URL=$(echo $SERVERurl | cut -d ":" -f 2 | tr -d "//")
;;
*)
URL=$SERVERurl
;;
esac
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
URL="$USERNAME:$PASSWORD@$URL"
fi
[ ! -z "$SERVERport" ] && URL="$URL:$SERVERport"
[ ! -z "$URLprot" ] && URL=$URLprot$URL
TEMPdir=/tmp
WGETo="-q"
[ -z "$COLORED" ] && COLORED=0
#- functions
#aufräumen
_cleanup() {
rm -f $TEMPdir/$ST
rm -f $TEMPdir/$CCC
}
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
[COLOR=#008000][B] echo "VPN Verbindung wird wegen eines Fehlers abgebaut"[/B][/COLOR]
[COLOR=#008000][B] /usr/script/vpn.sh stop[/B][/COLOR]
else
echo "$message"
echo "Abbruch"
[COLOR=#008000][B] echo "VPN Verbindung wird wegen eines Fehlers abgebaut"[/B][/COLOR]
[COLOR=#008000][B] /usr/script/vpn.sh stop[/B][/COLOR]
fi
exit 1
fi
}
#downloaden von time.txt
downtimetxt() {
#Downloaden von time.txt vom Server
wget $WGETo $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehlr aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time.txt in einer Variablen
timen=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
#Speichern der time_ccc.txt-variable in timelu_ccc.txt
savetimetxt() {
echo "$timen" > /etc/timelu_ccc.txt
}
#download and install Bouquets
downinstCCC() {
TYPE=$1
#Download der Senderliste vom Server
wget $WGETsettings $URL/$SERVERdir/$CCC
_error $? "Es ist ein Fehler aufgetreten (download $CCC)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$CCC" ]; then
_error 1 "Es ist ein Fehler aufgetreten ($CCC wurde nicht heruntergeladen)"
fi
cd /etc/
rm -f CCcam.cfg
mv -f $TEMPdir/$CCC $CCCdir
chmod 644 $CCCdir/$CCC
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/CCcam.cfg nach /etc)"
_cleanup
#Speichern der time_ccc.txt in timelu_ccc.txt
savetimetxt
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mCCcam $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "CCcam $TYPE erfolgreich abgeschlossen"
fi
echo " "
echo "Starte Receiver neu um CCcam $TYPE wirksam zu machen"
sleep 3
/usr/script/vpn.sh stop
wget -O /dev/null -q http://127.0.0.1/web/powerstate?newstate=2
}
#- main code
echo "Pruefe ob ein Update der CCcam.cfg noetig ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu_ccc.txt überhaupt vorhanden ist
if [ -f "/etc/timelu_ccc.txt" ]; then
#Speichern des Inhalts von timelu_ccc.txt in einer Variablen
timelu=$(cat /etc/timelu_ccc.txt | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von /etc/timelu_ccc.txt)"
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time_ccc.txt vom Server
downtimetxt
#Vergleich: Ist timelu kleiner als timen?
if [ $timelu -lt $timen ]; then
echo "Update vom $(date -d @$timen +"%d.%m.%Y um %H:%M") vorhanden.. Starte Update"
echo " "
#download and update CCcam.cfg
downinstCCC
else
#Timen ist kleiner oder gleich groß wie timelu
echo "CCcam.cfg aktuell. Kein Update noetig"
/usr/script/vpn.sh stop
fi
else
#vor dem downloaden sicherstellen das die datei nicht vorhanden ist
_cleanup
#Downloaden von time_ccc.txt vom Server
downtimetxt
#download and install CCcam.cfg
echo "Starte CCcam.cfg Install"
echo " "
downinstCCC
fi
exit 0
pack_astra_e1.sh
Code:
#!/bin/sh
#
# creates Bouquets ans Settings file. version: 0.5
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma1"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="1"
REMOTE="/var/www/settings/Astra_e1"
#
## Ende der Konfiguration
#
TEMPdir=/tmp/settings
enigma1dir="/var/www/settings/original/Astra_e1/"
enigma2dir="/var/www/settings/original/Astra_e2/"
Files2Pack2="satellites.xml terrestrial.xml cables.xml timezone.xml"
Files2Pack1="$Files2Pack2 *.tv *.radio lamedb blacklist settings whitelist userbouquet.* services"
PakFiles=""
ST="time.txt"
[ -z "$COLORED" ] && COLORED=0
#- functions
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
exit 1
fi
}
#collect files to pack
collectFiles() {
# source dir = $1
# Files2Pack = $2
cd $1
FILES=$(ls)
for file in $FILES; do
validfile=0
for wantedfile in $2; do
crapfile=0
if [ "$file" = "$wantedfile" ]; then
case $file in
*_bak) crapfile=1 ;;
*_org) crapfile=1 ;;
esac
[ "$crapfile" = 0 ] && validfile=1
fi
done
[ "$validfile" = 1 ] && PakFiles="$PakFiles $1$file"
done
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "$enigma1dir" ] && ENIGMA="enigma1"
[ -d "$enigma2dir" ] && ENIGMA="enigma2"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
[ "$ENIGMA" = "enigma1" ] && srcDIR=$enigma1dir
[ "$ENIGMA" = "enigma2" ] && srcDIR=$enigma2dir
#zu packende dateien ermitteln: enigma1 & enigma2
collectFiles "$srcDIR" "$Files2Pack1"
#zu packende dateien ermitteln: enigma2 (/etc/tuxbox/)
[ "$ENIGMA" = "enigma2" ] && collectFiles "/var/www/settings/" "$Files2Pack2"
#dateien zum packen vorbereiten
echo "Bereite Dateien zum packen vor.."
mkdir -p $TEMPdir/$ENIGMA
cp -rf $PakFiles $TEMPdir/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (zu packende dateien kopieren)"
#archive erstellen
echo "Erstelle Archive.."
cd $TEMPdir
tar -cz $ENIGMA > $TEMPdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (archive erstellen)"
[ ! -s "$TEMPdir/$BQ" ] && _error 1 "Es ist ein Fehler aufgetreten (erstelles archive hat 0 bytes)"
echo "Archive $TEMPdir/$BQ erfolgreich erstellt ($(echo `du -sh $TEMPdir/$BQ` | cut -d' ' -f 1))"
#time.txt erzeugen (format: unixtimestamp)
TIMESTAMP=$(date +%s)
echo $TIMESTAMP > $TEMPdir/$ST
echo "$TEMPdir/$ST erfolgreich erstellt ($TIMESTAMP)"
cp -rf /$TEMPdir/$BQ $REMOTE
cp -rf /$TEMPdir/$ST $REMOTE
echo "Bereinige $TEMPdir"
#rm -rf $TEMPdir
exit 0
pack_astra_e2.sh
Code:
#!/bin/sh
#
# creates Bouquets ans Settings file. version: 0.5
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma2"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="1"
REMOTE="/var/www/settings/Astra_e2"
#
## Ende der Konfiguration
#
TEMPdir=/tmp/settings
enigma1dir="/var/www/settings/original/Astra_e1/"
enigma2dir="/var/www/settings/original/Astra_e2/"
Files2Pack2="satellites.xml terrestrial.xml cables.xml timezone.xml"
Files2Pack1="$Files2Pack2 *.tv *.radio lamedb blacklist settings whitelist userbouquet.* services"
PakFiles=""
ST="time.txt"
[ -z "$COLORED" ] && COLORED=0
#- functions
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
exit 1
fi
}
#collect files to pack
collectFiles() {
# source dir = $1
# Files2Pack = $2
cd $1
FILES=$(ls)
for file in $FILES; do
validfile=0
for wantedfile in $2; do
crapfile=0
if [ "$file" = "$wantedfile" ]; then
case $file in
*_bak) crapfile=1 ;;
*_org) crapfile=1 ;;
esac
[ "$crapfile" = 0 ] && validfile=1
fi
done
[ "$validfile" = 1 ] && PakFiles="$PakFiles $1$file"
done
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "$enigma1dir" ] && ENIGMA="enigma1"
[ -d "$enigma2dir" ] && ENIGMA="enigma2"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
[ "$ENIGMA" = "enigma1" ] && srcDIR=$enigma1dir
[ "$ENIGMA" = "enigma2" ] && srcDIR=$enigma2dir
#zu packende dateien ermitteln: enigma1 & enigma2
collectFiles "$srcDIR" "$Files2Pack1"
#zu packende dateien ermitteln: enigma2 (/etc/tuxbox/)
[ "$ENIGMA" = "enigma2" ] && collectFiles "/var/www/settings/" "$Files2Pack2"
#dateien zum packen vorbereiten
echo "Bereite Dateien zum packen vor.."
mkdir -p $TEMPdir/$ENIGMA
cp -rf $PakFiles $TEMPdir/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (zu packende dateien kopieren)"
#archive erstellen
echo "Erstelle Archive.."
cd $TEMPdir
tar -cz $ENIGMA > $TEMPdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (archive erstellen)"
[ ! -s "$TEMPdir/$BQ" ] && _error 1 "Es ist ein Fehler aufgetreten (erstelles archive hat 0 bytes)"
echo "Archive $TEMPdir/$BQ erfolgreich erstellt ($(echo `du -sh $TEMPdir/$BQ` | cut -d' ' -f 1))"
#time.txt erzeugen (format: unixtimestamp)
TIMESTAMP=$(date +%s)
echo $TIMESTAMP > $TEMPdir/$ST
echo "$TEMPdir/$ST erfolgreich erstellt ($TIMESTAMP)"
cp -rf /$TEMPdir/$BQ $REMOTE
cp -rf /$TEMPdir/$ST $REMOTE
echo "Bereinige $TEMPdir"
#rm -rf $TEMPdir
exit 0
pack_hotbird_e1
Code:
#!/bin/sh
#
# creates Bouquets ans Settings file. version: 0.5
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma1"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="1"
REMOTE="/var/www/settings/Hotbird_e1"
#
## Ende der Konfiguration
#
TEMPdir=/tmp/settings
enigma1dir="/var/www/settings/original/Hotbird_e1/"
enigma2dir="/var/www/settings/original/Hotbird_e2/"
Files2Pack2="satellites.xml terrestrial.xml cables.xml timezone.xml"
Files2Pack1="$Files2Pack2 *.tv *.radio lamedb blacklist settings whitelist userbouquet.* services"
PakFiles=""
ST="time.txt"
[ -z "$COLORED" ] && COLORED=0
#- functions
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
exit 1
fi
}
#collect files to pack
collectFiles() {
# source dir = $1
# Files2Pack = $2
cd $1
FILES=$(ls)
for file in $FILES; do
validfile=0
for wantedfile in $2; do
crapfile=0
if [ "$file" = "$wantedfile" ]; then
case $file in
*_bak) crapfile=1 ;;
*_org) crapfile=1 ;;
esac
[ "$crapfile" = 0 ] && validfile=1
fi
done
[ "$validfile" = 1 ] && PakFiles="$PakFiles $1$file"
done
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "$enigma1dir" ] && ENIGMA="enigma1"
[ -d "$enigma2dir" ] && ENIGMA="enigma2"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
[ "$ENIGMA" = "enigma1" ] && srcDIR=$enigma1dir
[ "$ENIGMA" = "enigma2" ] && srcDIR=$enigma2dir
#zu packende dateien ermitteln: enigma1 & enigma2
collectFiles "$srcDIR" "$Files2Pack1"
#zu packende dateien ermitteln: enigma2 (/etc/tuxbox/)
[ "$ENIGMA" = "enigma2" ] && collectFiles "/var/www/settings/" "$Files2Pack2"
#dateien zum packen vorbereiten
echo "Bereite Dateien zum packen vor.."
mkdir -p $TEMPdir/$ENIGMA
cp -rf $PakFiles $TEMPdir/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (zu packende dateien kopieren)"
#archive erstellen
echo "Erstelle Archive.."
cd $TEMPdir
tar -cz $ENIGMA > $TEMPdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (archive erstellen)"
[ ! -s "$TEMPdir/$BQ" ] && _error 1 "Es ist ein Fehler aufgetreten (erstelles archive hat 0 bytes)"
echo "Archive $TEMPdir/$BQ erfolgreich erstellt ($(echo `du -sh $TEMPdir/$BQ` | cut -d' ' -f 1))"
#time.txt erzeugen (format: unixtimestamp)
TIMESTAMP=$(date +%s)
echo $TIMESTAMP > $TEMPdir/$ST
echo "$TEMPdir/$ST erfolgreich erstellt ($TIMESTAMP)"
cp -rf /$TEMPdir/$BQ $REMOTE
cp -rf /$TEMPdir/$ST $REMOTE
echo "Bereinige $TEMPdir"
#rm -rf $TEMPdir
exit 0
pack_hotbird_e2.sh
Code:
#!/bin/sh
#
# creates Bouquets ans Settings file. version: 0.5
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma2"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="1"
REMOTE="/var/www/settings/Hotbird_e2"
#
## Ende der Konfiguration
#
TEMPdir=/tmp/settings
enigma1dir="/var/www/settings/original/Hotbird_e1/"
enigma2dir="/var/www/settings/original/Hotbird_e2/"
Files2Pack2="satellites.xml terrestrial.xml cables.xml timezone.xml"
Files2Pack1="$Files2Pack2 *.tv *.radio lamedb blacklist settings whitelist userbouquet.* services"
PakFiles=""
ST="time.txt"
[ -z "$COLORED" ] && COLORED=0
#- functions
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
exit 1
fi
}
#collect files to pack
collectFiles() {
# source dir = $1
# Files2Pack = $2
cd $1
FILES=$(ls)
for file in $FILES; do
validfile=0
for wantedfile in $2; do
crapfile=0
if [ "$file" = "$wantedfile" ]; then
case $file in
*_bak) crapfile=1 ;;
*_org) crapfile=1 ;;
esac
[ "$crapfile" = 0 ] && validfile=1
fi
done
[ "$validfile" = 1 ] && PakFiles="$PakFiles $1$file"
done
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "$enigma1dir" ] && ENIGMA="enigma1"
[ -d "$enigma2dir" ] && ENIGMA="enigma2"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
[ "$ENIGMA" = "enigma1" ] && srcDIR=$enigma1dir
[ "$ENIGMA" = "enigma2" ] && srcDIR=$enigma2dir
#zu packende dateien ermitteln: enigma1 & enigma2
collectFiles "$srcDIR" "$Files2Pack1"
#zu packende dateien ermitteln: enigma2 (/etc/tuxbox/)
[ "$ENIGMA" = "enigma2" ] && collectFiles "/var/www/settings/" "$Files2Pack2"
#dateien zum packen vorbereiten
echo "Bereite Dateien zum packen vor.."
mkdir -p $TEMPdir/$ENIGMA
cp -rf $PakFiles $TEMPdir/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (zu packende dateien kopieren)"
#archive erstellen
echo "Erstelle Archive.."
cd $TEMPdir
tar -cz $ENIGMA > $TEMPdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (archive erstellen)"
[ ! -s "$TEMPdir/$BQ" ] && _error 1 "Es ist ein Fehler aufgetreten (erstelles archive hat 0 bytes)"
echo "Archive $TEMPdir/$BQ erfolgreich erstellt ($(echo `du -sh $TEMPdir/$BQ` | cut -d' ' -f 1))"
#time.txt erzeugen (format: unixtimestamp)
TIMESTAMP=$(date +%s)
echo $TIMESTAMP > $TEMPdir/$ST
echo "$TEMPdir/$ST erfolgreich erstellt ($TIMESTAMP)"
cp -rf /$TEMPdir/$BQ $REMOTE
cp -rf /$TEMPdir/$ST $REMOTE
echo "Bereinige $TEMPdir"
#rm -rf $TEMPdir
exit 0
VPN-freetz.ovpn (client1 Dreambox)
Code:
client
float
comp-lzo
float
nobind
persist-key
persist-tun
dev tap
tun-mtu 1500
remote-test.no-ip.info 1194
proto udp
ca "/etc/openvpn/ca.crt"
cert "/etc/openvpn/client1.crt"
key "/etc/openvpn/client1.key"
ns-cert-type server
mssfix
route-method exe
verb 3
route-delay 2
mute 20
Und unter Erweiterungen angelegt siehe Bild
Bild ist nicht mehr aktiv.
Danke nicht vergessen.
Edit: Fehler gefunden, Wenn aus irgendein Grund Das script abbricht bleibt die VPN Verbindung erhalten. Werde das mal ansehen.
Update: Lösung VPN Verbindung wird abgebaut bei Fehlermeldung.
Update 24.08.2013 - Update 1.2
cron_bq.sh für Hotbird_e1
Code:
#!/bin/sh
#
# Pruefung ob Bouquets Update vorhanden. Version 1.2
#
#
# Enigma Version ("enigma1" oder "enigma2").
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="ftp://192.168.11.3"
# Der Port eures Webservers (standard: 80)
SERVERport="21"
# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="Hotbird_e1"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME="dreambox"
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD="0000"
# timelu.txt auf Dreambox
timelu="timelu.txt"
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time.txt"
# Ob eine Ausgabe bei Kein Update und Fehlern gemacht werden soll 0 = Nein , 1 = Ja
AUSGABE="0"
# Dauerhaft Abfrage auf der Dreambox? 0 = Nein (Abfrage 15 Sekunden) , 1 = Ja
# Abfrage ob Update Boquets Update durchgefuehrt werden soll
ABFRAGE="0"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="0"
# Update Script Ordner und Datei
get_bqdir="/usr/script"
get_bqfile="get_bq.sh"
#
## Ende der Konfiguration
#
#VPN Verbindung aufbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
else
echo ""
fi
#prepare url
case $SERVERurl in
[hH][tT][tT][pP]*|[fF][tT][pP]*)
URLprot="$(echo $SERVERurl | cut -d ":" -f 1)://"
URL=$(echo $SERVERurl | cut -d ":" -f 2 | tr -d "//")
;;
*)
URL=$SERVERurl
;;
esac
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
URL="$USERNAME:$PASSWORD@$URL"
fi
[ ! -z "$SERVERport" ] && URL="$URL:$SERVERport"
[ ! -z "$URLprot" ] && URL=$URLprot$URL
TEMPdir=/tmp
WGETo="-q"
#- functions
#aufräumen
_cleanup() {
rm -r $TEMPdir/$ST
}
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
echo "$message"
echo "Abbruch"
if [ "$AUSGABE" = 1 ]; then
#Bildschirmnachricht bei ein Fehler
wget -O /dev/null "http://localhost:80/web/message?text=Verbindung%20wird%20beendet%20wegen%20eines%20Fehlers!&type=1&timeout=20"
else
echo ""
fi
#VPN Verbindung wegen eines Fehlers abbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird wegen eines Fehlers abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
exit 1
fi
}
#downloaden von time.txt
downtimetxt() {
#Downloaden von time.txt vom Server
wget $WGETo $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehlr aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time.txt in einer Variablen timeluZS
timeluZS=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
echo "Pruefe ob ein Update der Bouquets vorhanden ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu.txt überhaupt vorhanden ist
if [ -f "/etc/timelu.txt" ]; then
#vor dem download sicherstellen das die datei nicht vorhanden ist
_cleanup
#download von time.txt vom Server
downtimetxt
#Speichern des Inhalts von vorhanden timelu.txt in einer Variablen
timelu1=$(cat /etc/timelu.txt | head -n1 | tail -n1)
if [ $timelu1 -lt $timeluZS ]; then
#Abfrage ob Update abgeprochen werden soll
#Abfgrabe ob Dauerhaft abfrage oder nur für 15 Sekunden
if [ "$ABFRAGE" = 1 ]; then
wget -O /dev/null "http://localhost:80/web/message?text=Eine%20neu%20Senderlisten%20steht%20zum%20Update%20bereit!%20Soll%20Update%20ABGEBROCHEN%20werden?&type=0"
else
wget -O /dev/null "http://localhost:80/web/message?text=Eine%20neu%20Senderlisten%20steht%20zum%20Update%20bereit!%20Soll%20Update%20ABGEBROCHEN%20werden?&type=0&timeout=15"
fi
while [ -z "$answer" ]; do
answer=$(wget -O - 'http://localhost:80/web/messageanswer?getanswer=now' | egrep -o 'YES|NO')
sleep 1
done
if [ "$answer" = NO ];then
wget -O /dev/null "http://localhost:80/web/message?text=Update%20gestartet!%20Kann%20mehrer%20Minuten%20dauern!&type=1&timeout=10"
$get_bqdir/$get_bqfile
fi
else
echo "Es ist kein Update vorhanden!"
if [ "$AUSGABE" = 1 ]; then
#Bildschirmnachricht für kein Update vorhanden
wget -O /dev/null "http://localhost:80/web/message?text=Es%20ist%20kein%20Update%20vorhanden!&type=1&timeout=20"
else
echo ""
fi
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
fi
else
#Abfrage ob Update abgeprochen werden soll
#Abfgrabe ob Dauerhaft abfrage oder nur für 15 Sekunden
if [ "$ABFRAGE" = 1 ]; then
wget -O /dev/null "http://localhost:80/web/message?text=Eine%20neu%20Senderlisten%20steht%20zum%20Update%20bereit!%20Soll%20Update%20ABGEBROCHEN%20werden?&type=0"
else
wget -O /dev/null "http://localhost:80/web/message?text=Eine%20neu%20Senderlisten%20steht%20zum%20Update%20bereit!%20Soll%20Update%20ABGEBROCHEN%20werden?&type=0&timeout=15"
fi
while [ -z "$answer" ]; do
answer=$(wget -O - 'http://localhost:80/web/messageanswer?getanswer=now' | egrep -o 'YES|NO')
sleep 1
done
if [ "$answer" = NO ];then
wget -O /dev/null "http://localhost:80/web/message?text=Update%20gestartet!%20Kann%20mehrer%20Minuten%20dauern!&type=1&timeout=10"
$get_bqdir/$get_bqfile
fi
fi
exit 0
Update 22.08.2013: Version 1.1 > man kann jetzt im Script auswählen ob VPN gewünscht oder nicht
get_bq.sh (e1 Astra, e2 Astra, e1 Hotbird und e2 Hotbird) Version 1.1
get_CCcam.sh Version 1.1
get_Script_bq.sh Version 1.1
Zuletzt bearbeitet: