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

Cool, klingt sehr interessant, werde ich mich bei Zeit (vielleicht im Urlaub ) auch mal mit beschäftigen.
Feedback und evtl. Fragen gibts dann später :read:
 
AW: Settings über eigenen Server laden möglich

amassidda: versteh nicht so recht wofür die /etc/time.txt benötigt wird? normalerweise sollte der zeitstempel der datei nach wget immer noch der originale sein

um es den nutzern einfacher zu machen wärs auch schön wenn du extra variablen für die dyndns-host und den port einrichtest damit es leichter zu erkennen ist was man im script einstellen muss

und für den fall das der Bouquet-server mal nicht zu erreichen ist oder andere fehler aufgetreten sind solltest du ein paar überprüfungen in das script einbauen ob das überhaupt funktioniert hat usw bevor irgendwas gelöscht wird

und zu guter letzt würde ich nicht den standard apache port verändern sondern einen zusätzlichen anlegen der wiederum nur auf ein ganz bestimmtes verzeichniss zeigt, da du keinerlei login/password abfragen eingebaut hast und somit /var/www/ ungeschützt über das internet zugänglich wäre..
wie das geht kannst du da nachlesen:
Running different sites on different ports.
(das bezüglich "LOGIN mit .key verschlüsseln" betrifft nämlich nur ssh, aber nicht wget o.ä.)
 
AW: Settings über eigenen Server laden möglich

amassidda: versteh nicht so recht wofür die /etc/time.txt benötigt wird? normalerweise sollte der zeitstempel der datei nach wget immer noch der originale sein

Ob amassidda weiß wodür die time.txt benötigt wird ????
Also ich (der das Script entworfen hat), kann die sagen das die time.txt dafür verwendet wird um festzustellen ob ein Update benötigt wird oder nicht.

Wie ich den Zeitstempel einer Datei auslese weiß ich leider nicht
Lasse mich aber gerne belehren


um es den nutzern einfacher zu machen wärs auch schön wenn du extra variablen für die dyndns-host und den port einrichtest damit es leichter zu erkennen ist was man im script einstellen muss

Für mich eh nicht interessant, da ich hierfür eh meinen Webserver benutzen würde

Aber da soll sich amassidda mal drum kümmern.
Ich verstehe nämlich nicht so ganz was du meinst, denn für mich war/ist alles logisch erklärt

und für den fall das der Bouquet-server mal nicht zu erreichen ist oder andere fehler aufgetreten sind solltest du ein paar überprüfungen in das script einbauen ob das überhaupt funktioniert hat usw bevor irgendwas gelöscht wird

Neue Anregeungen sind immer gerne gesehen :dfingers:
Gelöscht wird nur was zuvor herruntergeladen wurde und nicht mehr benötigt wird.



Diese Geschichte geht an die Adresse von amassidda



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

Amassidda geniale Idee,
Aber könntest du mal ne Detaillierte Anleitung schreiben? Noob freundlich

Bzw wärs nicht möglich das man das auf einen eigenen Feed packen kann, und dan ganz normal über Plugins installiert?
 
Zuletzt bearbeitet:
AW: Settings über eigenen Server laden möglich

Also ich könnte meinen Webspace und meine Senderliste bereitstellen
 
AW: Settings über eigenen Server laden möglich

Ob amassidda weiß wodür die time.txt benötigt wird ????
Also ich (der das Script entworfen hat), kann die sagen das die time.txt dafür verwendet wird um festzustellen ob ein Update benötigt wird oder nicht.
wusste nicht das du das script erstellt hast

Wie ich den Zeitstempel einer Datei auslese weiß ich leider nicht
zum beispiel mit dem befehl stat wie zum beispiel stat -c %Z /etc/time.txt
um das datum über den zeitstempel zurück zu kriegen: date -d@`stat -c %Z /etc/time.txt`

Für mich eh nicht interessant, da ich hierfür eh meinen Webserver benutzen würde

Aber da soll sich amassidda mal drum kümmern.
Ich verstehe nämlich nicht so ganz was du meinst, denn für mich war/ist alles logisch erklärt
viele hier haben einen (thin client) server im lan aber wissen nicht was sie wo einstellen müssen, deshalb mein tipp zu mehr benutzerfreundlicherem aussehen des scripts:emoticon-0138-think

Gelöscht wird nur was zuvor herruntergeladen wurde und nicht mehr benötigt wird.
das script auf der ersten seite macht einfach alles nach einander ohne zu prüfen ob der befehl zuvor überhaupt erfolgreich war, deshalb könnte da einiges schief gehen wenn mal ein wget o.ä. nicht geht



wenn ich bischen mehr zeit hab guck ich mir das mal genauer an und meld mich dann noch mal
 
Wenn ich am Wochenende Zeit habe werde ich den ersten Post benutzerfreundlicher machen.

Finde gut das weitere Ideen dazu kommen um das Script zu verbessern dennoch muss man sich aber in klaren sein das manche Dinge doch überflüssig sein könnten .

Am besten das ganze Logisch angehen und um so mehr geprüft wird um so komplexer wird das Script also denke das es dadurch unübersichtlicher werden kann.

Das bekommen wir aber sauber hin

Werde mich mal hinsetzen so bald ich die Zeit habe.

Gruß

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

wusste nicht das du das script erstellt hast

Hätteste mal die paar Seiten vorher gelesen :JC_hmmm:

zum beispiel mit dem befehl stat wie zum beispiel stat -c %Z /etc/time.txt
um das datum über den zeitstempel zurück zu kriegen: date -d@`stat -c %Z /etc/time.txt`

Funzt auf meiner Dream nicht Befehl stat nicht bekannt

viele hier haben einen (thin client) server im lan aber wissen nicht was sie wo einstellen müssen, deshalb mein tipp zu mehr benutzerfreundlicherem aussehen des scripts:emoticon-0138-think

Ich nicht
Aber benutzerfreundlichkeit ist wichtig

das script auf der ersten seite macht einfach alles nach einander ohne zu prüfen ob der befehl zuvor überhaupt erfolgreich war, deshalb könnte da einiges schief gehen wenn mal ein wget o.ä. nicht geht

Ja aber wenn einer der Befehle fehlschlägt wird kein Update gemacht und auch nix gelöscht (is ja nix da).
Auf meiner Dreambox 800HDse mit Merlin3 zumindest.


wenn ich bischen mehr zeit hab guck ich mir das mal genauer an und meld mich dann noch mal

Freut mich zu hören


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

Funzt auf meiner Dream nicht Befehl stat nicht bekannt
das ist dann natürlich schlecht.. :emoticon-0124-worri


das problem was ich dabei aber auch noch sehe ist wie die bouquets erstellt werden, habt ihr dazu auch ein script?

hier mal meine überarbeitete version eures scripts, sollte denk ich besser zu verstehen sein was wie wo eingestellt werden müsste:
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma2 Bouquets
#
#
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die aktuelle 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"

# Name der gepackten Bouquets Datei
BQ="enigma2.tar.gz"

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

#
## Ende der Konfiguration
#

URL="$SERVERurl:$SERVERport"

#Downloaden von time.txt vom Server
wget -q -O /tmp/$ST $URL/$SERVERdir/$ST
chmod 755 /tmp/$ST

#Speichern des Inhalts von timelu.txt und time in einer Variablen
timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
timen=$(cat /tmp/$ST | head -n1 | tail -n1)

#Vergleich: Ist timelu kleiner als timen ?
if [ $timelu -lt $timen ]; then
    echo "Update vorhanden"
    echo "Starte Update"

    #Download der Senderliste vom Server
    wget -q -O /tmp/$BQ $URL/$SERVERdir/$BQ
    chmod 755 /tmp/$BQ
    #Entpacken
    tar -zxf /tmp/$BQ

    #Speichern der time.txt in timelu.txt
    echo "$timen" > /etc/timelu.txt
    rm -f /tmp/$ST

    cd /tmp/enigma2
    mv /tmp/enigma2/satellites.xml /etc/tuxbox/

    cd /etc/enigma2
    rm -f *.tv
    rm -f *.radio
    rm -rf blacklist
    rm -rf lamedb
    mv /tmp/enigma2/* /etc/enigma2

    rm -rf /tmp/enigma2
    rm -f /tmp/$BQ

    echo "Lade Senderliste neu"
    wget -qO - http://127.0.0.1/web/servicelistreload?mode=1
    wget -qO - http://127.0.0.1/web/servicelistreload?mode=2

    echo "Update erfolgreich abgeschlossen"

    #Timen ist kleiner oder gleich groß wie timelu
else
    echo "Senderliste aktuell"
    echo "Kein Update nötig"
    rm -f /tmp/$ST
fi

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

Der piloten und die Spoiler ....

Also 0800555333 dein Script läuft 1A mit einem kleinen Schönheitsfehler (zumindest bei meinem Merlin3 System) :
Du musst angemeldet sein, um Bilder zu sehen.


Bei meinem Script geht das kopieren ohne Probleme
Irgendwas mit der "Vereinfachung" stimmt da vielleicht nicht.

Achja und die Fehlermeldungen wenn die Dateien nicht auf dem Server sind, sind die selben wie bei meinem Script.

Ansonsten :emoticon-0148-yes:


Edit:

Wenn ich das Script so umschreibe, dann geht es (Problem vielleicht Flashexpander bedingt):

Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma2 Bouquets
#
#
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die aktuelle 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"

# Name der gepackten Bouquets Datei
BQ="enigma2.tar.gz"

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

#
## Ende der Konfiguration
#

URL="$SERVERurl:$SERVERport"

#Downloaden von time.txt vom Server
wget -q -O /tmp/$ST $URL/$SERVERdir/$ST
chmod 755 /tmp/$ST

#Speichern des Inhalts von timelu.txt und time in einer Variablen
timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
timen=$(cat /tmp/$ST | head -n1 | tail -n1)

#Vergleich: Ist timelu kleiner als timen ?
if [ $timelu -lt $timen ]; then
    echo "Update vorhanden"
    echo "Starte Update"

    [B]#Download der Senderliste vom Server
    cd /tmp/
    wget -q -O $BQ $URL/$SERVERdir/$BQ
    chmod 755 $BQ
    #Entpacken
     tar -zxf $BQ[/B]
          
    #Speichern der time.txt in timelu.txt
    echo "$timen" > /etc/timelu.txt
    rm -f /tmp/$ST
 
    cd /tmp/enigma2
    mv /tmp/enigma2/satellites.xml /etc/tuxbox/

    cd /etc/enigma2
    rm -f *.tv
    rm -f *.radio
    rm -rf blacklist
    rm -rf lamedb
    mv /tmp/enigma2/* /etc/enigma2

    rm -rf /tmp/enigma2
    rm -f /tmp/$BQ

    echo "Lade Senderliste neu"
    wget -qO - http://127.0.0.1/web/servicelistreload?mode=1
    wget -qO - http://127.0.0.1/web/servicelistreload?mode=2

    echo "Update erfolgreich abgeschlossen"

    #Timen ist kleiner oder gleich groß wie timelu
else
    echo "Senderliste aktuell"
    echo "Kein Update noetig"
    rm -f /tmp/$ST
fi

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

Also 0800555333 dein Script läuft 1A mit einem kleinen Schönheitsfehler (zumindest bei meinem Merlin3 System) :
Du musst angemeldet sein, um Bilder zu sehen.
da passt aber ebenfalls etwas nicht. Zeile 74 ist in dem von mir angepassten Script in der else Schleife von wegen "kein update nötig", da wird also garkein "cd /tmp/enigma2" ausgeführt..
Bist du wirklich sicher das du mein Script von oben 1:1 kopiert hast?

Achja und die Fehlermeldungen wenn die Dateien nicht auf dem Server sind, sind die selben wie bei meinem Script.
wollte es zunächst nicht zu kompliziert wirken lassen. das error handling würde ich später einbauen


das macht aber eigentlich kein sinn da es ja die selbe vorgehensweise wie beim downloaden der time.txt ist (ohne vorheriges "cd /tmp/").
wie gesagt, spricht deine Fehlermdung was von Zeile 74 aber wenn ich in das von mir gepostete Script gucke steht in Zeile 74:
Code:
else
    echo "Senderliste aktuell"
    echo "Kein Update nötig"
    [B]rm -f /tmp/$ST[/B]
fi

Womit hast du denn mein script bearbeitet bzw gespeichert und hochgeladen?
 
AW: Settings über eigenen Server laden möglich

Hi,
ein kleiner Gedankenanschub an euer Projekt ;-)

>>> -f <<< prüft sofort ob der Server on ist und eine Datei mit dem Namen vorliegt....
dann noch das Datum der Datei auslesen.....

den Rest habt ihr ja schon soweit im Griff

--------------

BQ=http://URLORT/ORDNER/
file = 'engma2.tar.gz'

if [ -f $BQ$file]; then
datum='ls --full-time | awk '{print $6}'
... Datei runterladen , nochmal prüfen ob alles unten ist, entpacken, restart...
fi

else
echo "Server Offline / Datei nicht vorhanden"

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

mit der if schleife kann man soweit ich weiss keine extern liegenden files auf vorhandenheit prüfen und was du bezüglich "$file wurde zuletzt modifiziert" geschrieben hast ist php code der so im sh script nicht funktionieren wird :emoticon-0105-wink:

aber ich weiss glaub ich trotzdem was du meinst, das wäre besagte fehlerüberprüfung ob der vorherige befehl fehlerfrei verlaufen ist usw. dazu hab ich auch mal was gebastelt also bitte mal testen:
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma2 Bouquets. version: 0.4
#
#
# 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"

# Name der gepackten Bouquets Datei
BQ="enigma2.tar.gz"

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

#
## Ende der Konfiguration
#


_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 "\t\033[1;31;40mAbbruch\033[0m"
        exit 1
    fi
}

TEMPdir=/tmp
URL="$SERVERurl:$SERVERport"

echo "Prüfe ob ein Update der Bouquets nötig ist.."
cd $TEMPdir

#Downloaden von time.txt vom Server
wget -q $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 timelu.txt und time in einer Variablen
timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von /etc/timelu.txt)"
timen=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"

#Vergleich: Ist timelu kleiner als timen?
if [ $timelu -lt $timen ]; then
    echo "Update vorhanden - Starte Update"
    echo " "

    #Download der Senderliste vom Server
    wget -q $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, %H:%m:%S" -r $TEMPdir/$BQ)"
    #Entpacken
    tar -zxf $BQ
    _error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"

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

    #Speichern der time.txt in timelu.txt
    echo "$timen" > /etc/timelu.txt
    rm -f $TEMPdir/$ST

    mv $TEMPdir/enigma2/satellites.xml /etc/tuxbox/
    _error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/enigma2/satellites.xml)"

    cd /etc/enigma2
    rm -f *.tv
    rm -f *.radio
    rm -rf blacklist
    rm -rf lamedb
    mv $TEMPdir/enigma2/* /etc/enigma2

    rm -rf $TEMPdir/enigma2
    rm -f $TEMPdir/$BQ

    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 reloaded | cut -d ">" -f 2 | cut -d "<" -f 1
    echo $RELOAD2 | grep reloaded | cut -d ">" -f 2 | cut -d "<" -f 1
    echo " "
    echo -e "\033[1;32;40m Update erfolgreich abgeschlossen \033[0m"

    #Timen ist kleiner oder gleich groß wie timelu
else
    echo "Senderliste aktuell"
    echo -e "\033[1;32;40m Kein Update nötig \033[0m"
    rm -f $TEMPdir/$ST
fi

exit 0
hab auch über den befehl date die anzeige der letzten änderung des bouquets archives eingefügt
 
Zuletzt bearbeitet:
AW: Settings über eigenen Server laden möglich

if prüft auch nix,
aber ich hatte ja geschrieben >>>> -f <<<< prüft auf vorhandensein der Datei
if [ -f $BQ$file];

macht das also ....( 1000%) ... ich arbeite immer damit!

Danke für den PHP-Hinweiss...hab´s geändert!

habe einen weitern vorschlag zum ermitteln des dateialters...

ls -l --time-style=long-iso virtual | cut -d ' ' -f6-7
sieht dann so aus ...
2008-12-03 14:22

oder einfach nur :

stat -c %y $Datei

---------------------
Jedenfall muss dann noch entweder mit der FB auf OK geklickt werden... wenn man (Frau auch) weiss das die neuer ist
oder aber so eine datei mit Zeitindex zum vergleichen auf der Box gespeichert werden, damit verglichen werden kann!!!

mit z.B.

if [ $file1 -nt $file2 ]; then # NewerThan
echo "$file1 ist neuer als $file2"
echo "Update wird ausgeführt"
fi
if [ "ALLES FERTIG" ]
..... neue datei mit neuem zeitstempel z.B. in /tuxbox erstellen und gut ist!
fi
....
das kann man locker weiterentwickeln für z.B. Enigma1 dateien etc.
wenn man z.B. auf Vorhandensein des Verzeichnisses >ENIGMA2< prüft, und wenn dass installiert ist, automatisch E2.tar.gz überspielt....
 
Zuletzt bearbeitet:
AW: Settings über eigenen Server laden möglich

wie gesagt funktioniert
if [ -f "http://URLORT/ORDNER/engma2.tar.gz" ]; then
nicht

-f kann nur das vorhanden sein einer datei auf der lokalen festplatte behandeln.
man muss die datei also zunächst versuchen herrunter zu laden und erst dann kann man prüfen ob die datei geladen und vorhanden ist.

wenn man aber bei wget die option -O verwendet spielt es keine rolle ob die datei im web vorhanden ist oder nicht da die lokale datei dann einfach leer wäre (mit 0 bytes)

zwar wäre eine überprüfung, ob eine datei vorhanden ist ohne diese wirklich herrunter zu laden, über die option --spider möglich aber das kann man sich hier eigentlich auch sparen, einfach normal versuchen herrunter zu laden und anschliesend prüfen ob die datei lokal vorhanden ist

in meinem v0.4 script hab ich mehrere überprüfungen eingebaut: ob der wget befehl funktionierte und anschliesend auch ob die datei vorhanden ist sowie ob das entpacken der datei funktioniert hat usw
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…