ddclient no update

linuxbaby

Newbie
Hallo
ich habe mir den ddclient von der suse -cd installiert
und soweit zum laufen gebracht das er 1 update ausgeführt hat und
das war's :(
kurz zur info ich sitze hinter einem smc7004br
hier mal meine
ddclient.conf

Code:
daemon=300                              # check every 300 seconds
syslog=yes                              # log update msgs to syslog
mail=root                               # mail all msgs to root
mail-failure=root                       # mail failed update msgs to root
pid=/var/run/ddclient.pid               # record PID in file.
use=smc-barricade,           fw=192.168.1.100:80        # via SMC's Barricade FW
use=web                                 # via web
login=mein username                                # default login
password=XXXXX                                 # default password
#mx=mx.for.your.host                            # default MX
#backupmx=yes|no                                # host is primary MX?
#wildcard=yes|no                                # add wildcard CNAME?

server=members.dyndns.org,              \
protocol=dyndns2                        \
tibet.servftp.net
die müßte ja korrekt sein sonst hätte er ja nicht einmal das update durchgeführt. weiterhin sollte der ddclient im runlevel editor stehen
tut er aber nicht bei mir....ich möchte halt das er nach der 24h trennung
die ip automatisch updatet.
please help
mfg
linuxbaby


[/code]
 

basman

Member
Hi

das Paket wurde von SuSE nicht allzu sorgfältig zubereitet (SuSE 9.0). Mit
Code:
rpm -ql ddclient
sieht man, dass es noch kein SuSE-Startskript gibt. Also auch keinen Eintrag im Runlevel-Editor. /usr/share/doc/packages/ddclient/sample-etc_rc.d_init.d_ddclient
ist zwar eine Vorlage für ein Startskript, aber für SuSE muss man sie gemäss /etc/rc.d/skeleton anpassen. Es scheint jedoch auch vorgesehen zu sein, den ddclient bei der Vergabe einer neuen IP gezielt aufzurufen, z.B. mit Hilfe von /etc/ppp/ip-up.local.

Soweit erst mal die Hinweise als Einstiegshilfe. Ich selber verwende das Paket noch nicht, wurde aber neugierig.

Gruss basman
 

linuxbaby

Newbie
hat sich erledigt ich hatte mich verschrieben :oops:
aber auch wenn der service nicht im runlevel-editor steht
funktioniert er tadellos, er bringt bei jedem reconnect sofort die
neue ip....
 

12earn

Newbie
Hallo,


ich hab auch den ddclient drauf,
wie mach ich das er auch läuft ? ich hab grade mal geteste auch nach 10 minuten ist die IP net Aktualisiert worden,
Du hast was von nem script geschrieben, ich bin was Suse angeht absolut neuling und hab kein Plan was ich damit soll....

Ich will über web checken ob neue IP wenn ja dann update und gut is das ist alles.

Wie start ich den client jetzt mit dem system ?

Kann mir das jemand bitte verständlich erklären was ich eintippen muss und wo ?

Grüße Thomas
 

12earn

Newbie
basman schrieb:

Schön hab ich auch gelesen,

Yast kennt den ddclient nicht... wie bekomm ich jast dazu das er ihr kennt ?

Ich bin leider wie gesagt kein linux profi....
Wenn ich nach jedem start mich einlogge und ddclient eintipp geht´s.

dann läuft er bis zum nächsten reboot :roll:

Hoffe du hast noch ne anleitung ..

GRüße Thomas
 

basman

Member
Es ist wohl so gedacht beim ddclient (ich selber habe ihn nicht laufen :( ), dass er bei jeder "Einwahl" aufgerufen wird. Das passiert üblicherweise mit Hilfe eines Skripts unter /etc/ppp/ip-up.d. Nach der SuSE-Installation (9.0) des ddclient ist dieser Start-Mechanismus jedoch nicht vorbereitet.

Versuche, ob ein Aufruf von
Code:
sh /usr/share/doc/packages/ddclient/sample-etc_ppp_ip-up.local
den ddclient erfolgreich aufruft. Wenn ja, kopierst Du das Script nach /etc/ppp/ip-up.d/ddclient
Code:
cp /usr/share/doc/packages/ddclient/sample-etc_ppp_ip-up.local /etc/ppp/ip-up.d/ddclient
und verpasst ihm Ausführungsrechte per
Code:
chmod a+x /etc/ppp/ip-up.d/ddclient
Jetzt wird das Ding bei jeder Internet-Einwahl aufgerufen.

Wenn Du jedoch weder Analog-Modem, ISDN noch DSL über ISDN oder über Analog-Leitung hast, wird der pppd nicht für Deinen Internetzugang verwendet und dann musst Du eines der anderen Skripte unter /usr/share/doc/packages/ddclient/ verwenden. Diese kopiert man aber nicht nach /etc/ppp/ip-up.d, sondern stellt andere lustige Dinge damit an...

P.S.: die obigen Befehle muss man als root ausführen. Wie man das wird? Entweder als root einloggen oder als normaler User eine Shell öffnen (im KDE Alt+F2 "konsole" Enter) und
Code:
su -
eingeben.
 

12earn

Newbie
Hm ok ich geb zu ist mein Fehler,

ich hab weder modem noch sonstwas zur einwahl, der Linux rechner hängt wie alle anderen am Router und der Wählt alleine.

Das mit der IP geht auch und zwar über den ddclient, der prüft (wenn er auch dann läuft) alle 5 minuten die IP ( einstellbar ) ich habs per web, das heisst er fragt nach welche IP er hat und schaut ob die anderst ist.

Wenn ja macht er das update.

Nur wird er eben nicht beim booten gestartet.

Das Problem ist nur das ich ihn net beim Booten laden kann mit yast.
Also hinzufügen lässt er sich auch net so einfach, hab schon versucht aber ich will net in den dateien rumfroschen die ich net kenne.

Wenn du mal nen blick da hinwerfen könntest? hat auch mit booten zu tun...
http://www.linux-club.de/viewtopic.php?t=7654

Grüße thomas
 

marcor

Member
linuxbaby schrieb:
hat sich erledigt ich hatte mich verschrieben :oops:
aber auch wenn der service nicht im runlevel-editor steht
funktioniert er tadellos, er bringt bei jedem reconnect sofort die
neue ip....

Dann bau den doch in den Runlevel ein. Als /etc/init.d/ddclient

Code:
#!/bin/sh
# Copyright (c) 1996, 2000 S.u.S.E. GmbH Fuerth, Germany.  All rights reserved.
#
#         Mike Fabian <mfabian@suse.de>, 2001
#
# /etc/init.d/ddclient
#
### BEGIN INIT INFO
# Provides:       ddclient
# Required-Start: $network $named $remote_fs
# Required-Stop:
# Default-Start:  3 5
# Default-Stop:
# Description:    DDClient
### END INIT INFO

. /etc/rc.status

DDCLIENT_BIN=/usr/sbin/ddclient
test -x $DDCLIENT_BIN || exit 5

# First reset status of this service
rc_reset

if [ ! -f /etc/ddclient.conf ] ; then
    echo "can't find /etc/ddclient.conf"
    # program is not configured
    exit 6
fi

case "$1" in
    start)
        echo -n "Starting ddclient daemon"
        startproc $DDCLIENT_BIN -daemon 300
        rc_status -v
        echo
        ;;
    stop)
        echo -n "Shutting down ddclient daemon"
        killproc ddclient
        rc_status -v
        echo
        ;;
    try-restart)
        $0 status >/dev/null && $0 restart
        rc_status
        ;;
    restart)
        $0 stop
        $0 start
        rc_status
        ;;
    status)
        echo -n "Checking for ddclient daemon: "
        checkproc $DDCLIENT_BIN
        rc_status -v
        ;;
    *)
        echo "Usage: $0 {start|stop|try-restart|restart|status}"
        exit 1
        ;;
esac

rc_exit

dann kann man den auch in Yast aktivieren und es wird alle 3 Minuten die IP abgefragt und wenn Sie nicht stimmt korrigiert.
Klappt hier bei mir wunderprächtig;-)
 

basman

Member
12earn schrieb:
ich hab weder modem noch sonstwas zur einwahl, der Linux rechner hängt wie alle anderen am Router und der Wählt alleine.

Das mit der IP geht auch und zwar über den ddclient, der prüft (wenn er auch dann läuft) alle 5 minuten die IP ( einstellbar ) ich habs per web, das heisst er fragt nach welche IP er hat und schaut ob die anderst ist.
Das sind die entscheidenden Hinweise.

12earn schrieb:
Das Problem ist nur das ich ihn net beim Booten laden kann mit yast.
Ich sehe zwei Möglichkeiten:
  1. Einfach: Du startest den ddclient als cron-job. Rufe unter dem User, unter dem ddclient laufen soll, crontab -e auf. Da Du noch Anfänger bist, empfehle ich dringend, vorher das Paket "mc" zu installieren und anstelle des vorigen Befehls
    Code:
    EDITOR=mcedit crontab -e
    einzugeben. Dann fügst Du diese Zeilen ein, speicherst und beendest.
    Wenn ddclient als normaler User laufen soll, gibst Du ein:
    Code:
    MAILTO=""
    */5 * * * *    /usr/sbin/ddclient -daemon=0 -syslog -quiet retry
    Wenn als root:
    Code:
    MAILTO=""
    */5 * * * *   root  /usr/sbin/ddclient -daemon=0 -syslog -quiet retry
    So wird der ddclient alle 5 Minuten aufgerufen.
    In der /var/log/messages kannst Du nach Meldungen des ddclient Ausschau halten.
    Stelle im Runlevel-Editor von Yast sicher, dass der crond aktiviert ist.

    Mehr Infos: in der Shell "man 5 crontab" eingeben.
  2. Kompliziert: /usr/share/doc/packages/ddclient/sample-etc_rc.d_init.d_ddclient gemäss /etc/init.d/skeleton an SuSE-Bedürfnisse anpassen und unter /etc/init.d/ddclient ablegen. Dann im Yast-Runlevel Editor aktivieren. Ist eher was für Profis (Shell Kenntnisse erforderlich) und kostet mehr Zeit. Uups... marcor war schneller. Jetzt ist das Geheimnis gelüftet, wie so ein Start-Skript aussehen sollte.
 

12earn

Newbie
Ok ich hab mich an die version mit yast gewagt,

1. hat der ddclient keinen Namen in Yast
2. wenn ich versuch ihn zu starten will er noch was starten, und er bringt dann:

/etc/init.d/ddclient start gab 126 (Fehler nicht Spezifiert) zurück

sh: line 3: /etc/init.d/ddclient: Keine berechtigung

Ich hab das als Root ausgeführt, die datei hab ich mit winSCP3 erstellt, mittels kopieren einer anderen datei und da den inhalt rein und Umbenennen.

Hoffe das ist so auch OK gewesen.

Muss ich die Pfade anpassen ? oder sind die Standard ??

Grüße Thomas
 

12earn

Newbie
Also ich weiss net, das hab ich 2 mal eingegeben und hatt nix getan,

über Winscp ahb ich dem mal 0777 verpasst und dann gings nen stück weiter...

/etc/init.d/ddclient start gab 127 (Fehler nicht Spezifiert) zurück

: Datei oder Verzeichnis icht gefunden

Und den namen hat er in yast auch noch nicht ..

Grüße Thomas
 

basman

Member
Die Meldung scheint aus dem Startscript heraus zu kommen. Rufe doch bitte als root auf:
Code:
bash -x /etc/init.d/ddclient start 2>&1 | tee /tmp/run.log
und poste die Datei /tmp/run.log (bzw. eine URL davon, falls sie so gross ist, dass das Forum nachher hässlich aussieht).

Kurze Erläuterung, was das bringt:
  • -x schaltet die Shell in eine Art Debug-Modus. Jeder im Skript ausgeführte Befehl wird ausgegeben.
  • 2>&1 leitet die Fehlerausgabe in die Standardausgabe um (stderr nach stdout). Das ist notwendig, damit die folgende Umleitung sowohl normale Meldungen als auch Fehlermeldungen zu fassen kriegt.
    [*]| tee /tmp/run.log
    leitet die Ausgabe durch tee, welches die Ausgabe dupliziert. Einerseits wird sie auf den Schirm geschrieben und zusätzlich in eine Datei.
 

12earn

Newbie
ok hab es so abgetippt und jetzt geht garnix grad, ich hab nen leeren bildschirm auf dem kann ich tippen was ich will.

Auch auf Strg + Alt + Entf reagiert er nicht.

Ich hab das bash auch mit geschrieben hoffe das war ok, ne datei run.log hat er auch nicht erstellt.

Scheint als würd er am anfang hängen und hat nichts auszugeben.
 

basman

Member
Es war schon richtig, "bash" miteinzugeben.

Log Dich grafisch ein, starte dort eine Shell, werde per "su -" root und versuche es dann erneut mit obigem Befehl.

Man kann uebrigens Systemscripts auch per Hand aktivieren:
Code:
chkconfig --list ddclient
chkconfig ddclient
chkconfig --add ddclient
 

12earn

Newbie
basman schrieb:
Log Dich grafisch ein, starte dort eine Shell, werde per "su -" root und versuche es dann erneut mit obigem Befehl.

Hm und wie mach ich das wenn er mir die Grafik verweigert da anscheinend zuwenig Arbeitsspeicher oder was zur verfügung steht ?

Ich versteh das teil net er hat 128 MB arbeitsspeicher und 233 Mhz Cpu,
das sollte doch reichen, darauf läuft sogar windof2000...

Ich brauch alles für die komandozeile weil eben Grafik = 0 Ist


Grüße Thomas
 

12earn

Newbie
Ok ich habs jetzt echt bald satt, ich komm grad net mal mehr in webmin rein...

Weis zwar net warum aber mal die letzten schritte rückgängig machen...

Ich starte den beim booten lieber selber dann weiss ich dass er läuft.
 
Oben