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:
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.
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
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.
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.
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`
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
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.
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`
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
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.
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?
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:
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:
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....
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