• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

ntpdate Problem mit cron?

draXo

Newbie
Hallo,

ich möchte ien Zeitsyncronisierung zu einerb estimmten zeit machen.
Also habe ich eine datei timesync.sh erstellt. diese beinhaltet:
Code:
ntpdate 192.53.103.103
Wenn ich die Datei ausführe mit ./timesync.sh klappt alles. Wenn ich aber diese Datei als cron-job (?) einrichte, kommt die fehlermeldung ./timesync.sh: line 1: ntpdate: command not found
nur wieso ?
 
A

Anonymous

Gast
Nimm mal das hier. Kopiere den Script in dein '$HOME/bin' Verzeichnis, und verlinke ihn nach '/etc/cron.daily'. Achso, natürlich ein 'chmod 755 scriptname' nicht vergessen. Damit wird deine Uhr jede Nacht automatisch gestellt. Ist natürlich nur was für Flatratebesitzer. Ansonsten kannst du ihn ja auch mit Rootrechten von Hand anstossen.

Code:
#!/usr/bin/perl -w
#
$USER_ID = `id -u`;
$PROG_NAME = `basename "$0"`;
#
if ( $USER_ID != 0 )
	{
	printf "You must be root to start $PROG_NAME";
	exit(1);
	}
	# sync clock
	$NTP = `/usr/sbin/ntpdate -u 192.53.103.103`;

	$NTP = substr $NTP, (index $NTP, "offset");
	if ($NTP eq '')
	{
		$NTP = "failed";
	}
	# update hardware clock
	`/sbin/clock --systohc`;

	# write to logfile
	`logger -t "$PROG_NAME" "clock sync: $NTP"`;

Gruß
 
A

Anonymous

Gast
draXo schrieb:
.... kommt die fehlermeldung ./timesync.sh: line 1: ntpdate: command not found
nur wieso ?

Nun , er hats halt nicht gefunden. Wieso kann ich dir auch nicht sagen. Vielleicht liegt es daran das keine Shebang-Zeile (#!/bin/bash) am Anfang des Scriptes ist, oder es nicht bei root in die crontab eingetragen war .... Vielleich war es auch nicht innerhalb der PATH-Variable auffindbar, 'ntpdate' ist, glaub ich, unter /usr/sbin installiert. Da gibt es viele Möglichkeiten.
 
Moin draXo,

unter welchem User läuft der cronjob? Versuch es mal als root und alles wird gut. (reimt sich sogar und laut Pumuckel ist alles was sich reimt gut)
 

scg

Hacker
Ich mein, er findet das ntpdate-Kommando nicht, also entweder weil der angemeldete Benutzer es nicht im Suchpfad hat (Stichwort: root crontab !) oder weil in der crontab ohnehin voll qualifizierte Pfadangaben der beste Weg sind, also der komplette Pfad zu ntpdate angegeben werden sollte.

Guck übrigens auch mal in unser Forum "Uhrzeit".
 
OP
D

draXo

Newbie
also er wird natürlich aus dem kompletten pfad ausgeführt, also
/./timesync.sh. Ausführung erfolgt als root. Ich habe den dienst mit Webmin angelegt. Es ist ja nicht so, dass nichts funktionieren würde. andere cron jobs gehen ja auch, nur dieser nicht...



ch mein, er findet das ntpdate-Kommando nicht, also entweder weil der angemeldete Benutzer es nicht im Suchpfad hat (Stichwort: root crontab !) oder weil in der crontab ohnehin voll qualifizierte Pfadangaben der beste Weg sind, also der komplette Pfad zu ntpdate angegeben werden sollte.

Könntest du mir das noch einmal genauer erläutern? :wink:


edit: die datei sieht nun so aus:

Code:
/usr/sbin/ntpdate 192.53.103.103

aber gleiches problem :cry:

edit2: nun geht's DANKE :)
 
Einstieg: /usr/share/doc/packages/xntp-doc/html/index.html
....
-u Direct ntpdate to use an unprivileged port or outgoing packets. This is most useful when behind a firewall that blocks incoming traffic to privileged ports, and you want to synchronise with hosts beyond the firewall. Note that the -d option always uses unprivileged ports.

Gruß switcher51
 
Oben