Posts by Matzetronic

    Hallo,


    ich bekomme bei Updates der vdr-Pakete immer folgende Fehlermeldungen:


    Das Problem scheint zu sein, dass die jeweils verlinkte Datei wieder ein Link auf die jeweils andere Datei ist (die wahre Ursache habe ich aber noch nicht gefunden).
    Um den VDR wieder ans Laufen zu bringen, muss ich die Links jedesmal händisch löschen - aber das ist ja sicher nicht im Sinne des Erfinders...


    Kann das Problem jemand nachvollziehen, oder tritt das nur bei mir auf ?


    Gruß,
    Matze



    PS.: Wieso liegen eigentlich manche Dateien im '/etc/vdr/' mit Link auf '/usr/share/vdr/' und bei manchen ist es genau umgedreht ? Da wird man ja völlig konfus...

    Hi NemoN,


    ich habe heute nochmal mit dem Shutdown-Hook unter Ubuntu herumgespielt, um diesen letzten Fehler zu finden.
    Meine Idee war ja, dass das Skript bei der Ausführung von logger irgendwie aussteigt - mit exit-Status 1 anstatt 0.
    Tja, was soll ich sagen - ich hab es nicht hinbekommen, egal, was ich gemacht habe, ich bekam jeweils immer den korrekten exit-Status zurück :(


    Vielleicht hat ja noch jemand eine Idee ?


    Gruß,
    Matze

    Hi @ll,


    hatte doch glatt vergessen, zu erwähnen, wie man die Bibliothek ins System integriert...
    Da sich hier allerdings noch keiner beschwert hat, gehe ich mal davon aus, dass es jeder selbst hinbekommen hat ;)


    Trotzdem hier nochmal kurz ein möglicher Weg (Zielverzeichnis: /usr/share/perl5/):

    Code
    1. tar -xzf reverse-lookup.tgz
    2. cd reverse-lookup/
    3. mkdir -p /usr/share/perl5/Phone
    4. cp lib/Phone/ReverseLookup.pm /usr/share/perl5/Phone/
    5. ...


    Wenn man das gemacht hat, kann man die Bibliothek verwenden, ohne dass man deren Pfad explizit mit 'use lib "/Pfad/zur/Bibliothek";' angeben muss.


    Wer diesen Schritt nicht gehen will, muss im Skript reverse-lookup.pl (bzw. lookup.agi) den Pfad zu den Bibliotheken händisch anpassen, und zwar muss die Zeile use lib "./lib"; an die eigenen Gegebenheiten angepasst werden.


    Gruß,
    Matze

    Hi NemoN,


    laut man-Page der dash ist es identisch zur bash - also 0 bedeutet kein Fehler und ungleich 0 ist ein Fehler.
    Und wenn ich es hier lokal teste, passt das auch genauso.
    Bei dem von Dir geposteten Log ist auch kein Fehler aufgetreten, sodass das Skript mit exit-Status 0 beendet wurde...


    Also ganz ehrlich - ich bin grad ziemlich ratlos :(


    Aber eines kannst Du noch testen - was passiert, wenn Du die letzte if-then-else-Anweisung komplett auskommentierst und stattdessen nur 'exit $STATUS' hineinschreibst ? Vielleicht hat er ein Problem mit dem Logging...


    Gruß,
    Matze

    Hi NemoN,


    hmm, kann ich mir im Moment nicht erklären, da ich ja den exit-Status entsprechend setze - also 0, wenn alles ok ist bzw. 1, wenn ein Fehler aufgetreten ist.


    Was sagt denn das Log auf dem Client ?


    Leider kann ich es mir erst morgen ansehen, da ich hier kein Ubuntu-System habe, auf dem ich das Problem nachstellen kann.
    Aber ich sehe es mir an.


    Gruß,
    Matze


    PS.: Danke für Deine Geduld und Fehler-Reports !

    So, und weils so schön ist, habe ich gleich noch ein AGI-Skript für Asterisk gebastelt :unsch


    Eingerichtet und getestet werden kann das mittels:

    Code
    1. tar -xzf lookup.agi.tgz
    2. cp lookup.agi /usr/share/asterisk/agi-bin/
    3. touch /var/lib/asterisk/phonebook.tdb
    4. chown asterisk:asterisk /usr/share/asterisk/agi-bin/lookup.pl
    5. chown /var/lib/asterisk/phonebook.tdb
    6. echo "agi_callerid: 0123456789" | /usr/share/asterisk/agi-bin/lookup.pl


    Gruß,
    Matze

    Files

    :moin


    Ich hab mal wieder gefrickelt und dachte, dass das Ergebnis ja vielleicht dem einen oder anderen nützt und stelle es hier zur Verfügung...


    Ich habe versucht, eine einigermaßen generische Perl-Bibliothek (objektorientiert) zu schreiben, um nahezu beliebige Telefonbücher abzufragen :)
    Über eine simple Konfiguration können für jede erdenkliche Quelle u.a. die URL und je eine Regular Expression für Treffer/kein_Treffer angegeben werden.
    Bei Bedarf können die Ergebnisse natürlich auch im lokalen Adressbuch abgelegt werden.


    Ich habe dem Paket ein kleines Beispiel-Skript beigelegt, welches bereits folgende Online-Telefonbücher konfiguriert hat:
    - http://fritz.box (Fritzbox Adressbuch)
    - http://www.dasoertliche.de
    - http://www.11880.com
    - http://www.meinestadt.de
    - http://www.goyellow.de
    - http://www.klicktel.de


    Im Skript wird zuerst das lokale Adressbuch abgefragt und danach alle konfigurierten Telefonbücher - beim ersten gefundenen Treffer wird das Ergebnis ausgegeben und das Skript beendet sich.


    Schnellanleitung für die Testwilligen:

    Code
    1. tar -xzf reverse-lookup.tgz
    2. cd reverse-lookup/
    3. touch phonebook.tdb
    4. ./reverse-lookup.pl 0123456789


    Viel Spaß,
    Matze


    PS.: Das alles natürlich wie immer ohne Gewähr und auf eigene Gefahr ;)

    Hi NemoN,


    ich habe mir den Shutdown-Hook noch mal angesehen und so angepasst, dass er jetzt mit bash und dash funktioniert.
    Allerdings habe ich grad meine Entwicklungsumgebung nicht zur Verfügung, um ein neues Debian-Paket zu bauen, deshalb gibts hier erstmal nur ein Diff...


    Code
    1. sudo patch /usr/share/vdr/shutdown-hooks/S99.wakemeup < vdr-shutdown-hook.diff


    Btw.: Läufts denn ansonsten zu Deiner Zufriedenheit ?


    Gruß,
    Matze

    Hi berndl,


    also bei mir ist es schon eine ganze Weile her, von daher keine Garantie dafür. Aber eigentlich sollte Folgendes funktionieren:

    Code
    1. cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.old
    2. echo 'DEVICE /dev/hde* /dev/hdi* /dev/hdk*' > /etc/mdadm/mdadm.conf
    3. mdadm --detail --scan >> /etc/mdadm/mdadm.conf
    4. mdadm --assemble /dev/md0 /dev/hde /dev/hdi /dev/hdk
    5. mdadm -R /dev/md0


    Wobei ich glaube, dass '--assemble' (4. Zeile) in diesem Fall nicht nötig wäre.


    Kannst Du das nicht mal mit den Imagedateien simulieren - dann weißt Du es ganz genau !?


    Gruß,
    Matze

    Ok, ich habe das Problem erkannt - glaube ich. Das Problem ist, dass Ubuntu /bin/sh standardmäßig auf /bin/dash verlinkt, welche wiederum Teile der Bash-Syntax nicht versteht :(
    Ich benutzte allerdings Debian, wo /bin/sh nach /bin/bash gelinkt ist.


    Eine mögliche temporäre Lösung wäre es, den Link auf die Bash zeigen zu lassen - zumindest, biss ich eine bessere Lösung dafür habe...


    Code
    1. sudo dpkg-reconfigure dash


    Gruß,
    Matze


    Edit: Befehl noch ergänzt

    Hmm, sehr seltsam, das Ganze.


    Könntest Du im Hook mal die Timer-Variable ausgeben lassen ? Also:

    Code
    1. echo "-$TIMER-" >>/tmp/debug.log # <- diese Zeile einfügen
    2. # now run the command


    Ich vermute ja irgendein non-printable-Zeichen...


    Gruß,
    Matze



    PS.: Sorry für den Aufwand - die nächste Version wird definitiv einen Debug-Schalter haben :)

    Hi NemoN,


    sorry, dass ich erst so spät antworte aber leider geht die E-Mail-Benachrichtigung mal wieder nicht und so habe ich Deinen Beitrag nur durch Zufall entdeckt :(


    Kannst Du mal folgendes Kommando auf dem Client ausführen und die Ausgabe hier posten:

    Code
    1. echo -en "`date +%s`\r\n" | /bin/netcat -vvn -i 1 -q 2 -w 3 IP_DES_SERVERS 9999


    Gruß,
    Matze

    Hi Ronny,


    grundsätzlich ist das eine nette Idee, um sich den eigenen Server zu sparen - wusste gar nicht, dass es sowas gibt...


    Jetzt kommt das große ABER ;)
    Das Problem wird bei den meisten sein, dass sie keine Möglichkeit haben, auf dem Router die MAC-Adresse des aufzuweckenden Clients fest einzutragen.


    Das bedeutet, dass der Router eine ARP-Anfrage nach der zur IP gehörenden MAC-Adresse stellt - keine Antwort bekommt - und deshalb das WoL-Paket nicht zum Client übermittelt...


    Also ich kann das gern einbauen - das wird aber wie gesagt bei den meisten nicht funktionieren, weil der ARP-Eintrag nach einer Stunde oder so wieder weg ist...


    Gruß,
    Matze