Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

    Nobody is reading this thread right now.
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

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:
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

Ja, das wär ne gute Lösung. Ich denke das könnte man dann mit einer 3. Timedatei realisieren. Dann muss auch erstmal geschaut werden ob sie scohn existiert, einen Inhalt hat und wenn ja welchen Inhalt (also mit der timelu.txt vergleichen).
Wenn dann also die - nennen wir sie mal time3.txt - nen kleineren Inhalt als timelu.txt hat, wird die Anzeige/Abfrage angezeigt. (Oder wenn die time3.lu eben nicht vorhanden oder leer ist...

Ja, das stimmt, es ist schade, dass er nicht mehr hier ist, aber ich denke das bekommen wir auch ohne ihn hin. Es gibt hier ja auch noch andere Leute und vielleicht bekommen wir das hier auch selbst noch hin. Ich hab heute Leider keine Zeit mehr, vielleicht morgen wieder, dann schau ich mal ob das so klappt. In der Zwischenzeit überleg ich mir noch wie ich das realisieren könnte.

Der nächste Schritt wäre dann aus den 2 Scripts nen .IPK zu machen, bzw nen kleines Tut schrieben, damit da dann jeder seine Daten reinpflanzen kann, dann ist das ganze auch schneller und einfacher zu installieren.

Man kann sich jetzt auch überlegen, eine 2. Version für ssl hinzu zu fügen - bzw das ursprüngliche Script dahingehend anpassen, dass es die Senderliste sowohl via http, als auch https downloaded, falls jemand das ganze über Inet verwirklicht und es eben etwas sicherer mag. Wenn jemand nen VPN-Server aufgesetzt hat isses ja egal.

An den beiden Sachen war ich schon dran, aber ich bin mich erst am Einlesen, sodass das etwas dauern könnte.

Nur kein Stress, wenn das alles so funktionieren würde wär es genial =)
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

Wow, lügnix, da haste ja echt was auf die Beine gestellt. Ich habs grad leider nur überflogen, aber sieht gut aus, werd mir das morgen oder übermorgen mal genauer anschauen. Vielen Dank.
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

so jungs habe mal ein Script geschrieben für die Crontab. prüft ob ein Update vorhanden ist und gibt es an der Dreambox aus.

@UncleC und der-wolf3 > schaut euch das mal an, ob das euren Wunsch enspricht

Update cron_bq.sh > Version 1.1: Es kann angegeben werden ob VPN genutzt wird oder nicht. Und es kann angegeben werden ob eine Ausgabe kommen soll bei Fehler(n) und kein Update. Siehe Post #61
 
Zuletzt bearbeitet:
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

Test ich gleich heute Abend nach der Arbeit lügnix :-)
Kann man bei der Ausgabe auch auswählen ob man updaten will oder nicht?
Wahrscheinlich nicht, die Anzeige dient nur als Info oder?

Gesendet von meinem Nexus 4 mit Tapatalk 2
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

Jup ist erstmal nur eine Info


Edit:
Ich kann ein Auswahlmenü ins script ein pflegen, aber es wird nur unter telnet angezeigt.
 
Zuletzt bearbeitet:
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

Da ich grerade einem Freund beim Bau eines Paviilions helfe, kann ich heute warhscheinlich noch nicht danach schauen, frühestens morgen.
Hast dir da echt viel Arbeit gemacht.
Mit der Auswahl im Telnet brauchste nicht machen, da ein 0815-User eh nix im Telnet machen wird und um die geht es uns ja. (Eltern, technisch unversierte Freund, Faulpelze...)
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

Die Info Bau ich auf alle fälle mit ein, hab das Script in meinen Receiver in die Plugin verlinkt "Kanalliste aktualisieren" :cool::cool::cool::cool:

@wolf wann wird der Pavillon auf Bier Tauglichkeit getestet, würde ich mir zeit nehmen :-D

Gesendet von meinem Nexus 4 mit Tapatalk 2
 
./sh not found

Hallo

bei mir funzt das get_bq.sh überhaupt nicht (von der Seite 1)

Ausgabe Console:
root@gb800ue:/usr/script# ./Senderliste.sh
./sh: ./Senderliste.sh: not found

Habe mal direkt mit /bin/sh die Datei aufgerufen, was aber auch nichts gebracht hat.

root@gb800ue:/usr/script# /bin/sh /usr/script/Senderliste.sh
/usr/script/Senderliste.sh: line 8: $'\r': command not found
/usr/script/Senderliste.sh: line 11: $'\r': command not found
/usr/script/Senderliste.sh: line 14: $'\r': command not found
/usr/script/Senderliste.sh: line 17: $'\r': command not found
/usr/script/Senderliste.sh: line 20: $'\r': command not found
/usr/script/Senderliste.sh: line 23: $'\r': command not found
/usr/script/Senderliste.sh: line 26: $'\r': command not found
/usr/script/Senderliste.sh: line 29: $'\r': command not found
/usr/script/Senderliste.sh: line 33: $'\r': command not found
/usr/script/Senderliste.sh: line 34: $'\r': command not found
/usr/script/Senderliste.sh: line 36: syntax error near unexpected token `$'in\r''
'usr/script/Senderliste.sh: line 36: `case $SERVERurl in
root@gb800ue:/usr/script#

Script wurde mit Notepad von dem Forum eingefügt und per Winscp übertragen. Auch packen in eine tar.gz und entpacken auf dem Receiver hat nichts gebracht.

Habe Code mit nano verglichen und auch nichts festgestellt.

Script wurde außerdem auf zwei Receiver getestet (gb800ue mit openrsi und et5000 mit openpli)

get_bq.sh

#!/bin/sh
#
# creates Bouquets ans Settings file. version: 0.5
#
# Downloads, Installs & Reloads the latest Enigma Bouquets. version: 1.3
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma2"


# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="http://xxxxxxxx.de"


# Der Port eures Webservers (standard: 80)
SERVERport="80"


# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="bouquet"


# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME=""


# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD=""


# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time.txt"


# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="1"


#
## Ende der Konfiguration
#
#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
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 - )
RELOAD2=$(wget -qO - )
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 " "
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 " "
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;32;40mBouquets $TYPE erfolgreich abgeschlossen\033[0m"
else
echo "Bouquets $TYPE erfolgreich abgeschlossen"
fi
echo " "
echo "Starte Receiver neu um Bouquets $TYPE wirksam zu machen"


reboot
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"
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

Das gleiche Problem tritt auch mit der pack_bq.sh auf


Kann mir irgeneiner weiterhelfen?


cynt4k
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

hast du die pack_bq.sh und get_bq.sh umbenannt?

wenn du pack_bq.sh und get_bq.sh so wie se sind in /usr/script legst

Rechte nicht vergessen zu setzten
Code:
chmod 755 /usr/script/get_bq.sh
chmod 755 /usr/script/pack_bq.sh
und mit

Code:
cd /usr/script
./get_bq.sh
./pack_bq.sh
ausführen
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

bei mir heißen sie jetzt get_bq.sh und pack_bq.sh, das ist ja eigentlich egal wie sie heißen

und die rechte passen auch

trotzdem immer noch das gleiche Problem
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

klar ist das egal. Wollte nur nachfragen, mir ist auch schon passiert das ich die falsche eingabe gemacht habe (weil die datei den falschen namen hatte)

und wenn du nur

Code:
/usr/script/get_bq.sh

eingibst
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

da kommt das

root@gb800ue:/usr/script# /usr/script/get_bq.sh
-sh: /usr/script/get_bq.sh: /bin/sh^M: bad interpreter: No such file or directory
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

Mach Notepad auf leeres Dokument
dann kopier von Post #1 dein gewünschtest script rein
oben an der leiste Einstellungen > Optionen > Dateien > Zeilende-Format UNIX auswählen > schließen
speichern unter > Dateityp " Unix script file (*.sh;*.sh) und dateinamen angeben
dann wie gewohnt auf die Dreambox rechte vergeben und testen
 
AW: Enigma1 / Enigma2 Receiver Bouquets über eigenen Server verteilen

so habe es jetzt geschafft

aber ganz komisch

@lügnix: Das mit der Codierung hat auch nicht geklappt, desshalb habe ich mal das Script auf meinen Root gezogen und da gestartet.
Da hat es aber am Anfang auch nicht funktioniert, also habe ich mal die Datei mit nano geöffnet und einfach mal ein leerzeichen reingemacht und gespeichert.
Danach hat es auf dem Root funktioniert. Habe es dann als tar.gz gepackt und auf meinen Receiver gezogen und gestartet.

Echt komisch sowas :wacko:
 
Zurück
Oben