Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

Settings über eigenen Server laden möglich

    Nobody is reading this thread right now.
AW: Settings über eigenen Server laden möglich

Bei mir ist momentan noch irgendwo der Wurm drin..

hab .htaccess und .htpasswd erstellt. Den Namen, den ich dort vergeben habe, gebe ich bei der Settings.sh als Benutzername, Passwort an.
Die Settings liegen in /var/www/settings/
Auch das hab ich in der sh eingegeben.

die sh liegt auf der Box in etc/cron/scripts/Settings.sh.

Führe ich die Datei jetzt auf der Box aus, bekomme ich folgendes Resultat:

/bin/sh: /etc/cron/scripts/Settings.sh: not found

Dateiberechtigung liegt auf 755.
Irgendwo hab ich da noch ein Problem, ich glaub das ist eher was für morgen
Muss dann nochmal drüber gehen. Vielleicht mal ohne Passwort probieren.

Ach ja, ich habe die Version vom Startpost genommen.

Gruß
 
hab .htaccess und .htpasswd erstellt.

Also die .htpasswd musst du nicht erstellen sondern mit dem Befehl den ich in Ersten Post gepostet habe einen User anlegen.

Wie hast du das denn bitte erstellt?
Vielleicht verstehe ich das jetzt falsch

Welches Image hast du auf deiner Box und welche Enigma Version 1 oder 2?

"File Not found"

Mal versucht einen Neustart mit dem Settings.sh zu machen keinen GUI sondern kompletten Neustart?

Weil das Not Found sich auf das Script bezieht und nicht auf einen Fehler im Script

Gruß

amassidda
 
Zuletzt bearbeitet:
AW: Settings über eigenen Server laden möglich

@0800555333

Irgendwas stimmt in Version 0.7 mit den Funktionen nicht !

Meine Dream sagt :

line35: syntax error: unexpected "("
hm vielleicht mag sh das leerzeichen zwischen dem namen der funktion und () nicht.. hab das mal angepast:
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma2 Bouquets. version: 0.72
#
#
# Enigma Version ("enigma1" oder "enigma2")
ENIGMA="enigma2"

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

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

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

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

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

# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"

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

#
## Ende der Konfiguration
#


#error handling - function
_error () {
    if [ $1 -gt 0 ]; then
        [ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
        echo -e "\033[1;31;40m $message \033[0m"
        echo -e "\033[1;31;40mAbbruch\033[0m"
        exit 1
    fi
}

# 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

TEMPdir=/tmp
URL="$SERVERurl:$SERVERport"
WGETsettings="-q -P$TEMPdir --timeout=15 --wait=5 --tries=3"

if [ ! -z "$USERNAME" ]; then
    if [ -z "$PASSWORD" ]; then
        _error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
    fi
    WGETsettings="$WGETsettings --user=$USERNAME --password=\"$PASSWORD\""
fi

#downloaden von time.txt - function
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)"
    rm -f $TEMPdir/$ST
}

#Speichern der time.txt in timelu.txt - function
savetimetxt () {
    echo "$timen" > /etc/timelu.txt
}

#download and install Bouquets - function
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

    #datum des bouquets archives
    echo "Bouquets Archive wurde erstellt am $(date +"%d.%m.%Y um %H:%m:%S" -r $TEMPdir/$BQ)"

    #Entpacken
    tar -zxf $BQ
    _error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"

    #prüfen ob der inhalt des enigma2 archives korrekt ist
    if [ "$ENIGMA" = "enigma2" ] && [ ! -f "$TEMPdir/$ENIGMA/satellites.xml" ]; then
        _error 1 "Das Archive $BQ entspricht nicht den Anforderungen! ($ENIGMA/satellites.xml nicht vorhanden)"
    fi

    if [ "$ENIGMA" = "enigma2" ]; then
        mv $TEMPdir/$ENIGMA/satellites.xml /etc/tuxbox/
        _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/satellites.xml)"

        cd /etc/$ENIGMA
        rm -f *.tv
        rm -f *.radio
        rm -rf blacklist
        rm -rf lamedb
        mv $TEMPdir/$ENIGMA/* /etc/$ENIGMA/
        _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /etc/$ENIGMA/)"
        rm -rf $TEMPdir/$ENIGMA
        rm -f $TEMPdir/$BQ

        #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 " "
        echo -e "\033[1;32;40m Bouquets $TYPE erfolgreich abgeschlossen \033[0m"
    else
        cd /var/tuxbox/config/enigma/
        rm -f *.tv
        rm -f *.radio
        rm -f *.epl
        rm -rf bouquets
        rm -rf services
        rm -rf services.locked
        mv /tmp/$ENIGMA/* /var/tuxbox/config/enigma/
        _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /var/tuxbox/config/enigma/)"
        rm -rf $TEMPdir/$ENIGMA
        rm -f $TEMPdir/$BQ

        #Speichern der time.txt in timelu.txt
        savetimetxt

        echo " "
        echo -e "\033[1;32;40m Bouquets $TYPE erfolgreich abgeschlossen \033[0m"
        echo " "
        echo "Starte neu um Bouquets $TYPE wirksam zu machen"

        reboot
    fi
}

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

    #Downloaden von time.txt vom Server
    downtimetxt

    #Vergleich: Ist timelu kleiner als timen?
    if [ $timelu -lt $timen ]; then
        echo "Update vorhanden - Starte Update"
        echo " "
        #download and update bouquets
        downinstBQ Update
    else
        #Timen ist kleiner oder gleich groß wie timelu
        echo -n "Senderliste aktuell."
        echo -e "\033[1;32;40m Kein Update noetig \033[0m"
    fi
else
    #Downloaden von time.txt vom Server
    downtimetxt
    
    #download and install bouquets
    echo "Starte Bouquets Install"
    echo " "
    downinstBQ Install
fi

exit 0

Und den Inhalt der Enigma2.tar.gz kann man nicht vorraussagen, ist variabel (Anzahl der Bouquets)
aber die dateien liegen doch in einem bestimmten verzeichnis oder?
wenn ja kann man über ein script den benutzer bei jedem einzelnen file fragen ob es dem archive hinzugefügt werden soll, dann kann man sich wie gesagt das umwandeln über ein extra programm usw sparen.
theoretisch liese sich das auch allgemein mehr automatisieren, archive erstellen & hochladen & time.txt anpassen

heissen die dateien immer je nach Bouquets-Art (Sat, Kabel usw) unterschiedlich oder wonach richtet sich das?

Also die .htpasswd musst du nicht erstellen sondern mit dem Befehl den ich in Ersten Post gepostet habe einen User anlegen.
doch muss er! und zwar mit dem htpasswd befehl!

in der .htpasswd sind die zugangsdaten hinterlegt.
in deinem ersten post hast du jegendlich das erstellen der .htaccess aufgeführt

aber in der .htaccess wird jegendlich die konfiguration vorgekommen wie zum beispiel wo die datei mit den zugangsdaten (loginassword) zu finden ist (AuthUserFile /var/htpasswd)

aber vorallem muss die .htaccess auch in das verzeichnis das geschützt werden soll!
wenn er die enigma2.tar.gz im /var/www/settings/ liegen hat, muss die .htaccess also auch in das verzeichnis /var/www/settings/

und dadurch ergibt sich auch dass der user/password schutz von ipc dadurch nicht beeinflusst wird da der sich auf /var/www/ipc/ bezieht.. zwar liegt durch IPC bereits eine .htaccess datei in /var/www/ aber die regelt etwas anderes (andere einstellungen, aber nichts "Authorization required" relevantes)

deine beschreibungen im ersten post sind aber auch immer noch etwas verwirrend
zum beispiel:
aktiviert nun euren Schutz indem ihr das in eure .htaccess

Dazu folgenden Befehl ausführen:


"File Not found"

Mal versucht einen Neustart mit dem Settings.sh zu machen keinen GUI sondern kompletten Neustart?

Weil das Not Found sich auf das Script bezieht und nicht auf einen Fehler im Script
da steht nichts von "file". man muss ein linux aber auch nicht neu starten nur weil man ein shell script eingerichtet hat..

das einfachste wäre wenn er copy&past von dem macht was er eingibt und was dann als fehlermeldung kommt. ansonsten das script mit debug ausgabe starten:
sh -x /etc/cron/scripts/Settings.sh
dann sieht man vielleicht bei was "not found" auftritt
 
Zuletzt bearbeitet:
AW: Settings über eigenen Server laden möglich

/etc/cron/scripts/Settings.sh ist das File was not found wurde

Stimmt die .htpasswd muss erstellt werden mein Fehler

Mit dem Befehl:

htpasswd -c /var/htpasswd USER

Ist mir aufgefallen das immer nur ein Benutzer zur verfügung steht also nicht ein neuer angelegt wird.

Gibts da auch die möglichkeit einen neuen einzufügen?

Man muss sonst die Datei mit einem FTP Tool bearbeiten und immer einen neuen USER anzulegen

Gruß

amassidda
 
AW: Settings über eigenen Server laden möglich

/etc/cron/scripts/Settings.sh ist das File was not found wurde
dann würde da aber normalerweise sowas ähnliches wie:

-sh: /etc/cron/scripts/Settings.sh: file not found

oder

-bash: /etc/cron/scripts/Settings.sh: file not found


stehen..

kannst du ganz einfach mal selber testen in dem du auf irgendeiner linux konsole (oder deinem receiver) " /etc/cron/scripts/Settings.sh " eingibst und auszuführen versuchst


ich bin mir aber ziemlich sicher das nicht das script-file "not found" wurde sondern etwas anderes - das könnte zum beispiel auch schon an ungültigen zeielnumbruch zeichen liegen wenn er das script mit notepad erstellt hat (dann ist das format der datei nicht linux-kompatible)
was bewirkt denn der parameter " -c " ?

führ doch mal den befehl ohne irgendwelche parameter aus also nur " htpasswd " dann zeigt er dir welche parameter verwendet werden können
 
AW: Settings über eigenen Server laden möglich


Genau so ist es
Das Problem sind die Funktionen, denn bei dir sehen bei dir mal so mal so aus:

Code:
Falsch:
function _error()
function downtimetxt()

Richtig:
function_error()
function_downtimetxt()
Code:
Aufruf der Funktion dann so:

_error $? "Es ist ein Fehler aufgetreten (download $ST)"
_downtimetxt

Hier haste mal dein Script angepasst:
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma2 Bouquets. version: 0.71
#
#
# Enigma Version ("enigma1" oder "enigma2")
ENIGMA="enigma2"

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

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

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

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

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

# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"

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

#
## Ende der Konfiguration
#


#error handling
function_error() {
    if [ $1 -gt 0 ]; then
        [ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
        echo -e "\033[1;31;40m $message \033[0m"
        echo -e "\033[1;31;40mAbbruch\033[0m"
        exit 1
    fi
}

# 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

TEMPdir=/tmp
URL="$SERVERurl:$SERVERport"
WGETsettings="-q -P$TEMPdir --timeout=15 --wait=5 --tries=3"

if [ ! -z "$USERNAME" ]; then
    if [ -z "$PASSWORD" ]; then
        _error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
    fi
    WGETsettings="$WGETsettings --user=$USERNAME --password=\"$PASSWORD\""
fi

#downloaden von time.txt
function_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)"
    rm -f $TEMPdir/$ST
}

#Speichern der time.txt in timelu.txt
function_savetimetxt() {
    echo "$timen" > /etc/timelu.txt
}

#download and install Bouquets
function_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

    #datum des bouquets archives
    echo "Bouquets Archive wurde erstellt am $(date +"%d.%m.%Y um %H:%m:%S" -r $TEMPdir/$BQ)"

    #Entpacken
    tar -zxf $BQ
    _error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"

    #prüfen ob der inhalt des enigma2 archives korrekt ist
    if [ "$ENIGMA" = "enigma2" ] && [ ! -f "$TEMPdir/$ENIGMA/satellites.xml" ]; then
        _error 1 "Das Archive $BQ entspricht nicht den Anforderungen! ($ENIGMA/satellites.xml nicht vorhanden)"
    fi

    if [ "$ENIGMA" = "enigma2" ]; then
        mv $TEMPdir/$ENIGMA/satellites.xml /etc/tuxbox/
        _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/satellites.xml)"

        cd /etc/$ENIGMA
        rm -f *.tv
        rm -f *.radio
        rm -rf blacklist
        rm -rf lamedb
        mv $TEMPdir/$ENIGMA/* /etc/$ENIGMA/
        _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /etc/$ENIGMA/)"
        rm -rf $TEMPdir/$ENIGMA
        rm -f $TEMPdir/$BQ

        #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 " "
        echo -e "\033[1;32;40m Bouquets $TYPE erfolgreich abgeschlossen \033[0m"
    else
        cd /var/tuxbox/config/enigma/
        rm -f *.tv
        rm -f *.radio
        rm -f *.epl
        rm -rf bouquets
        rm -rf services
        rm -rf services.locked
        mv /tmp/$ENIGMA/* /var/tuxbox/config/enigma/
        _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /var/tuxbox/config/enigma/)"
        rm -rf $TEMPdir/$ENIGMA
        rm -f $TEMPdir/$BQ

        #Speichern der time.txt in timelu.txt
        _savetimetxt

        echo " "
        echo -e "\033[1;32;40m Bouquets $TYPE erfolgreich abgeschlossen \033[0m"
        echo " "
        echo "Starte neu um Bouquets $TYPE wirksam zu machen"

        reboot
    fi
}

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

    #Downloaden von time.txt vom Server
    _downtimetxt

    #Vergleich: Ist timelu kleiner als timen?
    if [ $timelu -lt $timen ]; then
        echo "Update vorhanden - Starte Update"
        echo " "
        #download and update bouquets
        _downinstBQ Update
    else
        #Timen ist kleiner oder gleich groß wie timelu
        echo -n "Senderliste aktuell."
        echo -e "\033[1;32;40m Kein Update noetig \033[0m"
    fi
else
    #Downloaden von time.txt vom Server
    _downtimetxt

    #download and install bouquets
    echo "Starte Bouquets Install"
    echo " "
    _downinstBQ Install
fi

exit 0

Das Script läuft nun fast durch ....
Die Dream sagt:
Code:
[B]
line 188: _error not found
line 188: _downtime.txt not found
[/B]


Klären wir am besten mal per PN.
Ist OT


Gruß
Youtube18
 
AW: Settings über eigenen Server laden möglich

nein, dein "richtig" ist falsch! bzw siehe unten

was sind function's?
im prinzip selbst deklarierte befehle

quellen: , ,

" function_error() " wird nicht funktionieren da der name des commands dann " function_error " lautet aber nicht mehr " _error " und somit kann man weiter unten im script auch keinen befehl " _error " mehr aufrufen..


Das Script läuft nun fast durch ....
Die Dream sagt:
Code:
[B]
line 188: _error not found
line 188: _downtime.txt not found[/B]
siehe oben.. einen befehl names "_error" gibt es in deinem abgeänderten script ja auch nicht mehr. bei dir lautet er nun "function_error"
allerdings weiss ich absolut nicht wo nun " _downtime.txt " her kommt und das auch noch in der selben zeile wie _error?


edit:

habe alle meine scripts noch mal rückwirkend angepasst..
bei " function _error () { " ist für /bin/sh anscheint " function " zu viel also mit " _error () { " funktioniert es nun

edit2:

habe das script nochmals überarbeitet. ENIGMA wird nun automatisch ermittelt sofern die einstellung leer ( "" ) ist
v0.82
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma Bouquets. version: 0.82
#
#
# Enigma Version ("enigma1" oder "enigma2"). wird versucht automatisch zu ermitteln falls leer
ENIGMA=""

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

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

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

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

#
## Ende der Konfiguration
#


TEMPdir=/tmp
URL="$SERVERurl:$SERVERport"
WGETsettings="-q -P$TEMPdir"

#- functions

#error handling
_error () {
    if [ $1 -gt 0 ]; then
        [ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
        echo -e "\033[1;31;40m $message \033[0m"
        echo -e "\033[1;31;40mAbbruch\033[0m"
        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)"
    rm -f $TEMPdir/$ST
}

#Speichern der time.txt 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

    #datum des bouquets archives
    echo "Bouquets Archive wurde erstellt am $(date +"%d.%m.%Y um %H:%m:%S" -r $TEMPdir/$BQ)"

    #Entpacken
    tar -zxf $BQ
    _error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"

    #prüfen ob der inhalt des enigma2 archives korrekt ist
    if [ "$ENIGMA" = "enigma2" ] && [ ! -f "$TEMPdir/$ENIGMA/satellites.xml" ]; then
        _error 1 "Das Archive $BQ entspricht nicht den Anforderungen! ($ENIGMA/satellites.xml nicht vorhanden)"
    fi

    if [ "$ENIGMA" = "enigma2" ]; then
        mv $TEMPdir/$ENIGMA/satellites.xml /etc/tuxbox/
        _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/satellites.xml)"

        cd /etc/$ENIGMA
        rm -f *.tv
        rm -f *.radio
        rm -rf blacklist
        rm -rf lamedb
        mv $TEMPdir/$ENIGMA/* /etc/$ENIGMA/
        _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /etc/$ENIGMA/)"
        rm -rf $TEMPdir/$ENIGMA
        rm -f $TEMPdir/$BQ

        #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 " "
        echo -e "\033[1;32;40m Bouquets $TYPE erfolgreich abgeschlossen \033[0m"
    else
        cd /var/tuxbox/config/enigma/
        rm -f *.tv
        rm -f *.radio
        rm -f *.epl
        rm -rf bouquets
        rm -rf services
        rm -rf services.locked
        mv /tmp/$ENIGMA/* /var/tuxbox/config/enigma/
        _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/$ENIGMA/* nach /var/tuxbox/config/enigma/)"
        rm -rf $TEMPdir/$ENIGMA
        rm -f $TEMPdir/$BQ

        #Speichern der time.txt in timelu.txt
        savetimetxt

        echo " "
        echo -e "\033[1;32;40m Bouquets $TYPE erfolgreich abgeschlossen \033[0m"
        echo " "
        echo "Starte 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

if [ ! -z "$USERNAME" ]; then
    if [ -z "$PASSWORD" ]; then
        _error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
    fi
    WGETsettings="$WGETsettings --user=$USERNAME --password=\"$PASSWORD\""
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)"

    #Downloaden von time.txt vom Server
    downtimetxt

    #Vergleich: Ist timelu kleiner als timen?
    if [ $timelu -lt $timen ]; then
        echo "Update vorhanden - Starte Update"
        echo " "
        #download and update bouquets
        downinstBQ Update
    else
        #Timen ist kleiner oder gleich groß wie timelu
        echo -n "Senderliste aktuell."
        echo -e "\033[1;32;40m Kein Update noetig \033[0m"
    fi
else
    #Downloaden von time.txt vom Server
    downtimetxt
    
    #download and install bouquets
    echo "Starte Bouquets Install"
    echo " "
    downinstBQ Install
fi

exit 0
 
Zuletzt bearbeitet:
AW: Settings über eigenen Server laden möglich

So bin heute mal dazu gekommen das ganze zu testen..
Bin wie folgt vorgegangen ..
Meine Settings in enigma2.tar.gz gepackt und auf meinem Igel mit Debian in /var/www/Settings geschoben, dabei die Datei time.txt mit 20130715 erstellt,
Dann das v0.8 vom 0800555333 auf meine DM800se mit Gemini in /etc/cron/scripts (Verzeichniss scripts musste ich erstellen) geschoben und Rechte auf 755 gesetzt, und in /etc/ eine timelu.txt mit 19700101 erstellt..
Wenn ich dann mit den Dateibrowser Settings.sh ausführe bekomme ich in der Console folgende Ausgabe:

Ausführen eines externen Befehls:
/bin/sh: /etc/cron/scripts/Settings.sh: not found
Ausführung beendet!


Das Script hab ich so angepasst:
Code:
# Enigma Version ("enigma1" oder "enigma2"). wird versucht automatisch zu ermitteln falls leerENIGMA="enigma2"


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


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


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


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


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


# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"


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

Hab Variante mit Standartport und ohne PW gewählt

Hat jemand ne Idee was ich falsch mache?
 
AW: Settings über eigenen Server laden möglich

Hallo Leute,

Habe meinen Fehler gefunden. Es lag wohl daran, das die sh in DOS Dateityp vorlag. Ich habe die dann in UNIX konvertiert. Jetzt kann ich das Script ausführen. Danke für den entscheidenden Tipp!

Jetzt habe ich noch folgendes Problem: Es funktioniert irgendwie nur, wenn ich mit Port 80 arbeite. Sobald ich den ändere, komm ich nicht an meine Datei..
gebe ich im Browser dann folgendes ein: IP/Settings/enigma2.tar.gz komm ich an diese Datei, obwohl in dem Ordner die .htpasswd und .htaccess Dateinen vorhanden sind.

Das Script aus dem Startpost von Amassidda läuft bei mir durch.
Allerdings kommt da als Fehler:
tar: invalid number ' 10010 '
/usr/script/Settings.sh: cd: line 63: can't cd to /tmp/enigma2
mv: cannot rename '/tmp/enigma2/satellites.xml': No such file or directory
mv: cannot rename '/tmp/enigma2/*': No such file or directory
Lade Senderliste neu
<?xml version="1.0" encoding="UTF-8"?>
...
Danach waren alle Favoriten in der Box gelöscht..

Das Script von 0800555333 krieg ich irgendwie nicht zum laufen:
Pruefe ob ein Update der Bouquets noetig ist..
wget: unrecognized option '--timeout=15'
BusyBox v1.15.3 (2012-12-09 13:15:55 CET) multi-call binary

Usage: wget [-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document file]
[--header 'header: value'] [-Y|--proxy on/off] [-P DIR]
[-U|--user-agent agent] url

Retrieve files via HTTP or FTP

Options:
-s Spider mode - only check file existence
-c Continue retrieval of aborted transfer
-q Quiet
-P Set directory prefix to DIR
-O Save to filename ('-' for stdout)
-U Adjust 'User-Agent' field
-Y Use proxy ('on' or 'off')

Es ist ein Fehler aufgetreten (download time.txt)
Abbruch

Ich bleib am Ball

Ich bin das ganze bei einer vu+ solo am Testen mit VTI image.


EDIT:
@UncleC:
Vor dem Problem habe ich Anfangs auch gestanden, (Post 46).
Habe dann wie von 0800555333 beschrieben, geschaut, was für ein Dateisystem die sh ist. Diese habe ich von DOS nach UNIX geändert. Jetzt kann ich das Script ausführen
 
Zuletzt bearbeitet:
AW: Settings über eigenen Server laden möglich

Hey Jonny474 wie hast du DOS in Unix konvertiert?
 
AW: Settings über eigenen Server laden möglich

UltraEdit kann das.

Datei -> Konvertieren -> Dos nach UNIX.
 
AW: Settings über eigenen Server laden möglich

dann bearbeite mal das script und änder zeile 37
Code:
WGETsettings="-q -P$TEMPdir --timeout=15 --wait=5 --tries=3"
in:
Code:
WGETsettings="-q -P$TEMPdir"
habe das auch oben noch mal angepasst (v0.81)


Wenn ich dann mit den Dateibrowser Settings.sh ausführe bekomme ich in der Console folgende Ausgabe:

Ausführen eines externen Befehls:
/bin/sh: /etc/cron/scripts/Settings.sh: not found
Ausführung beendet!
führ das script bitte über putty aus

ist das ein copy&past fehler in der ersten zeile?

wenn du den Listen Port vom apache2 veränderst musst du apache2 auch neu starten damit das übernommen werden kann
 
AW: Settings über eigenen Server laden möglich

Danke Jonny, funktioniert..
Bekomme aber (mit dem Script vom 0800555333)
Die selbe ausgabe wie du, also
Es ist ein Fehler aufgetreten (download time.txt)
Der Pfad muss aber stimmten, via Browser kann ich auf die time.txt zugreifen




 
AW: Settings über eigenen Server laden möglich

Sry, 0800555333
Sry hab dein Poste jetzt erst gesehen, wir haben zur gleichen zeit geschrieben
Ja war ein Copy & Paste Fehler, Enigma="enigma2" steht in einer neuen Zeile..
Das bearbeiten der zeiler 37 hat geholfen, bekomm jetzt den Hinweis das sattelites.xml nicht vorhanden sei, ist aber 100 pro im Archiv..
Hab nochmal einen Screenshot von der Ausgabe und dem Archiv gemacht
 
AW: Settings über eigenen Server laden möglich

Mit der neuen Zeile 37 gehts auch bei mir.

Allerdings krieg ich die tar.gz datei nicht entpackt..
Bouquets Archive wurde erstellt am 15.07.2013 um 15:07:46
tar: invalid number ' 10014 '
Es ist ein Fehler aufgetreten (entpacken enigma2.tar.gz)
Abbruch


Eine Settings tar.gz habe ich mit der VU+ gemacht, die kann ich auch wieder entpacken. Die von mir am PC erstellten tar.gz funktionieren nicht.
Wie habt ihr die am PC erstellt? habe Izarc und 7zip probiert.
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…