Crontab ddclient

Crys

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.665
Ich habe eine DynDNS Adresse zu meinem Homeserver. Die heimische IP kann ich erfolgreich manuell aktuallisieren, der Crontab dazu klappt aber nicht:
Code:
nano crontab -e
# nachfolgendes hinzugefügt:
45 04 * * * ddclient -daemon=0 -debug -verbose -noquiet --force

Im log (/var/mail/root) steht dann folgendes:
[...]
Subject: Cron <root@ChrisXu> /etc/init.d/ddclient -daemon=0 -debug -verbose -noquiet --force
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <20150824024501.B198B1A36DD@ChrisXu>
Date: Mon, 24 Aug 2015 04:45:01 +0200 (CEST)

* Usage: /etc/init.d/ddclient {start|stop|restart|force-reload}
Wie mache ich das richtig?
 
In der Crontab gehen keine Parameter.
Mach ein script welches den Aufruf macht und leg das Script in die crontab.
 
syntax falsch.

# Minuten / Stunden / Tage / Monate / Wochentage / User / Befehl #

bei dir fehlt
A der User
B das richtige Commando ohne synax, sprich script schreiben
C der Pfad dahin

-->

45 04 * * * root /etc/skripte/ddclient_renew.sh


und unter /etc/skripte (oder woanders hin, dann im crontab pfad anpassen) dann ein:

#!/bin/sh
echo $(date) "---Start---" >> /var/log/ddclient_renew.log
echo "Renew durch Script" >> /var/log/ddclient_renew.log

/etc/init.d/ddclient restart -daemon=0 -debug -verbose -noquiet --force

echo "Script durchlaufen" >> /var/log/ddclient_renew.log
echo $(date) "---ENDE---" >> /var/log/ddclient_renew.log
echo " " >> /var/log/ddclient_renew.log
 
Zuletzt bearbeitet:
Soweit ich weiß gibts beim ddclient aber auch nen daemon-Modus. Sprich der ddclient läuft ständig im Hintergrund und schaut ob sich die IP ändert. Das sollt vorallem auch zuverlässlicher funktionieren als über cron. Sollte sogar mit Init-Script ausgeliefter werden...

EDIT:
Siehst ja sogar an dem:
Usage: "{start|stop|restart|force-reload}

Du hast auch bereits das init.script für ddclient, brauchst nun "/etc/init.d/ddclient start" ausführen und das ding läuft. Damit ddclient dann bei jedem Systemstart automatisch anläuft brauchst nur "update-rc.d ddclient defaults" ausführen.
Crontabs brauchst du also nicht.
 
Zuletzt bearbeitet:
Danke euch allen für die schnellen Antworten!

Das mit den Parametern im Crontab habe ich nicht gewusste, werde ich im Hinterkopf behalten.
Der Deamon läuft super, hatte nur nicht verstanden, was das genau ist :)
 
Daemon = läuft einfach im Hintergrund. In der ddclient.conf gibts dazu auch nen Eintrag:

Code:
# check every 5 minutes
daemon=300

Was nebenbei auch sinnvoller ist als das nur 1x am Tag zu erledigen, denn man bekommt ja nicht unbedingt immer zur selben Zeit eine neue IP-Addresse vom ISP.

Wobei nicht jeder dyndns-Anbieter glücklich darüber zu sein scheint. Ich konnte mir quasi eine fertige ddclient.conf herunterladen, da stand standardmäßig sogar nur eine Minute als Intervall drin, bei dyndns.org wird man dafür offenbar gebannt.

Je nach Distro gibts nebenbei auch nen systemd-Service für ddclient. Den einfach per
Code:
systemctl enable ddclient
aktivieren und fertig.
 
Zuletzt bearbeitet:
Zurück
Oben