Page 1 of 1

rdate funktioniert nicht per cron?!

Posted: 2004-08-15 20:52
by andreask2
Hallo!

Habe da ein seltsames Problem mit einem Cronjob.

In /etc/cron.hourly liegt das folgende Script:

Code: Select all

#! /bin/sh
/usr/bin/rdate -su ntp1.ptb.de
damit will ich eigentlich meine Systemuhr aktualisieren, was auch wunderbar (ohne Ausgabe) funktioniert, wenn ich das so ausführe. Aber sobald das per cron ausgeführt wird, dann bekomme ich folgende Meldung zugemailt:
rdate: timed out waiting for data from ntp1.ptb.de
Ich habe wirklich keine Idee wieso das passiert. Wie gesagt kann ich das einfach so ausführen und es geht wunderbar.

Auch wenn ich -u (also TCP statt UDP) weglasse funktioniert es auch nicht.

Hat jemand von Euch ne Idee woher das kommt?


Viele Grüße
Andreas

PS: Was verwendet Ihr so für Zeitserver?

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-15 21:20
by andreask2
Grade nochmal getestet, wenn ich

Code: Select all

#! /bin/sh
/usr/bin/rdate -s ntp1.ptb.de
verwende (also TCP an Stelle von UDP), dann erhalte ich:
rdate: Connection refused
Wie gesagt, beide Varianten funktionieren perfekt wenn ich das Script selber von der Shell aus starte.

Ich verstehe es nicht.

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-15 21:22
by andreask2
wobei, die UDP-Variante funktioniert problemlos von der Shell, die TCP-Variante gibt auch auf der Shell oft dieses Fehler aus, aber nicht immer. Kann das evtl. am Server/Protokollversion liegen?

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-15 21:54
by captaincrunch
Warum nutzt du nicht einfach ntpdate, und im weiteren ntpd? ;)

Falls du diesem Problem im speziellen auf die Spur kommen willst, dürfte dich tcpdump weiterbringen...achte halt nur drauf, die NIC nicht zwangsläufig in den promiscious mode zu setzen. ;)

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-16 00:42
by andreask2
Ja, ich hab jetzt ntp installiert, und verwende das veraltete ntpdate. Das geht.
ntpd, naja, das öffnet wieder einen UDP-Port, das mag ich eigentlich nicht, vor allem wenn es wirklich _überhaupt_nicht_ notwendig ist. Außerdem ist das mal wieder ne ganze Ecke komplizierter (und ich finde die Konfiguration ist auch nicht gut dokumentiert), hab mir eine /etc/ntp.conf erstellt:

Code: Select all

restrict 127.0.0.1 notrust nomodify
server ntp1.ptb.de
server ntp2.ptb.de
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log
ntpd -q funktioniert zwar ebenfalls, aber im Gegensatz zu ntpdate öffnet es keine Verbindung auf einem hohen Port, sondern öffnet den NTP-Port, startet also kurz den Daemon, wenn ich das richtig vestehe. Und es dauert erheblich länger. Hat das denn irgendeinen Vorteil, oder würdest Du das Teil wirklich als Daemon ständig laufen lassen?

Im Prinzip läuft dann ja ein NTP-Server, der von außen erreichbar ist, der nur durch den Eintrag in der Konfig nicht viel mit sich machen lässt. Ich sehe das allerdings als unnötiges Risiko. Wobei ich gelesen habe, dass in diesem Fall die Zeit am besten/genausten synchronisiert werden kann...

rdate habe ich genommen, weil man theoretisch nur

Code: Select all

emerge rdate
rdate server
machen muss, und fertig!

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-16 01:08
by sascha
Benutze einfach einen anderen Server. Bei den beiden PTB-Servern habe ich dieses Problem auch regelmäßig.

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-16 09:35
by andreask2
kennt denn jemand ein paar zuverlässige Server in Deutschland?

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-16 11:44
by floschi
andreask2 wrote:kennt denn jemand ein paar zuverlässige Server in Deutschland?
pool.de.ntp.org

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-16 14:18
by andreask2
olfi wrote:pool.de.ntp.org
Du meinst vermutlich

Code: Select all

de.pool.ntp.org
http://twiki.ntp.org/bin/view/Servers/NTPPoolServers

Werde ich mal probieren, vielen Dank!

Verwendet Ihr denn eher ntp, oder was einfacheres wie rdate? Das seltsame ist, dass rdate in der shell eigentlich mehr oder weniger funktioniert, aber per cron _überhaupt_ nicht.

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-16 19:30
by sascha
Ich persönlich setze auch rdate ein. Wann läuft denn dein Cronjob? Es könnte ja sein dass sich gleichzeitig ein paar weitere Clients syncen wollen. Evtl. verschiebst du die Ausführungszeit mal um ein paar Minuten.

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-16 19:32
by andreask2
So mache ich das jetzt:

Code: Select all

#! /bin/sh
ntpd -q  > /dev/null 2>&1
meine /etc/ntp.conf sieht so aus:

Code: Select all

restrict 127.0.0.1 notrust nomodify
server de.pool.ntp.org
server de.pool.ntp.org
server de.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log
Das funktioniert wunderbar. Ich verstehe das zwar nicht, ich hab mir das ganze mal per tcpdump angesehen, komischerweise sendet derselbe Server bei rdate immer wieder ICMP-Pakete wie "Port unreachable" oder sowas, und machmal antwortet er gar nicht. Mit ntpdate und ntpd funktioniert das dagegen - wie gesagt mit demselben Server einwandfrei. Wobei ntpd immer bei einem Server von der uni-erlangen landet, und rdate kunterbunt gemischt bei unterschiedlichen Servern. Vielleicht cached ntpd die IP irgendwie selber? Naja... jedenfalls Danke für Eure Hilfe!

Grüße
Andreas

Re: rdate funktioniert nicht per cron?!

Posted: 2004-08-16 19:36
by andreask2
Sascha wrote:Ich persönlich setze auch rdate ein. Wann läuft denn dein Cronjob? Es könnte ja sein dass sich gleichzeitig ein paar weitere Clients syncen wollen. Evtl. verschiebst du die Ausführungszeit mal um ein paar Minuten.
Hm, immer zur vollen Stunde, das ist in der Tat eine einleuchtende Idee ;-)

Naja, bei einer Anwendung auf dem Server kommt es auf genaue Zeit an, wobei es eigentlich auch täglich reichen sollte. Mal sehen. Aber ich denke das Problem besteht auch wenn ich es in /etc/cron.daily lege, also besser mal ne ganz andere Zeit.

Wobei ich auch so, zwischendurch manuell Probleme habe, bei ntpd dagegen nie.