hab .htaccess und .htpasswd erstellt.
hm vielleicht mag sh das leerzeichen zwischen dem namen der funktion und () nicht.. hab das mal angepast:@0800555333
Irgendwas stimmt in Version 0.7 mit den Funktionen nicht !
Meine Dream sagt :
line35: syntax error: unexpected "("
#!/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
aber die dateien liegen doch in einem bestimmten verzeichnis oder?Und den Inhalt der Enigma2.tar.gz kann man nicht vorraussagen, ist variabel (Anzahl der Bouquets)
doch muss er! und zwar mit dem htpasswd befehl!Also die .htpasswd musst du nicht erstellen sondern mit dem Befehl den ich in Ersten Post gepostet habe einen User anlegen.
aktiviert nun euren Schutz indem ihr das in eure .htaccess
Dazu folgenden Befehl ausführen:
da steht nichts von "file". man muss ein linux aber auch nicht neu starten nur weil man ein shell script eingerichtet hat.."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
dann würde da aber normalerweise sowas ähnliches wie:/etc/cron/scripts/Settings.sh ist das File was not found wurde
was bewirkt denn der parameter " -c " ?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
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.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
Falsch:
function _error()
function downtimetxt()
Richtig:
function_error()
function_downtimetxt()
Aufruf der Funktion dann so:
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
_downtimetxt
#!/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
[B]
line 188: _error not found
line 188: _downtime.txt not found
[/B]
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?
nein, dein "richtig" ist falsch! bzw siehe untenGenau 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
Functions enable you to break down the overall functionality of a script into smaller, logical subsections, which can then be called upon to perform their individual task when it is needed.
Using functions to perform repetitive tasks is an excellent way to create code reuse. Code reuse is an important part of modern object-oriented programming principles.
Shell functions are similar to subroutines, procedures, and functions in other programming languages.
siehe oben.. einen befehl names "_error" gibt es in deinem abgeänderten script ja auch nicht mehr. bei dir lautet er nun "function_error"Das Script läuft nun fast durch ....
Die Dream sagt:
Code:[B] line 188: _error not found line 188: _downtime.txt not found[/B]
#!/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
# 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"
dann bearbeite mal das script und änder zeile 37Das 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
Es ist ein Fehler aufgetreten (download time.txt)
Abbruch
WGETsettings="-q -P$TEMPdir --timeout=15 --wait=5 --tries=3"
WGETsettings="-q -P$TEMPdir"
führ das script bitte über putty ausWenn 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!
ist das ein copy&past fehler in der ersten zeile?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"
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?