rdate displays and sets the local date and time from the host name or address given as the argument. The time source may be an RFC 868 TCP protocol server, which is usually implemented as a built-in service of inetd(8), or an RFC 2030 protocol SNTP/NTP server. By default, rdate uses the RFC 868 TCP protocol.
The options are as follows:
Forces rdate to use IPv4 addresses only.
Forces rdate to use IPv6 addresses only.
Use the adjtime(2) call to gradually skew the local time to the remote time rather than just hopping.
Correct leap seconds. Sometimes required when synchronizing to an NTP server. When synchronizing using the RFC 868 protocol, use this option only if the server does not correctly account for leap seconds. You can determine if you need this parameter if you sync against an NTP server (with this parameter) or (recommended) check with a local radio controlled watch or phone service.
Use SNTP (RFC 2030) instead of the RFC 868 time protocol.
Do not set, just print the remote time.
Do not print the time.
Verbose output. Always show the adjustment.
record of date resets and time changes
To get the legal time in Germany, set the
/etc/localtime symlink to
/usr/share/zoneinfo/right/Europe/Berlin and issue the following command:
# rdate -ncv ptbtime1.ptb.de
The command of course assumes you have a working internet connection and DNS set up to connect to the server at Physikalisch-Technische Bundesanstalt in Braunschweig, Germany.
To gradually adjust time once an hour after the first "step" adjustment, put the following line into root's crontab:
58 * * * * rdate -ncav ptbtime1.ptb.de | logger -t NTP
date(1), adjtime(2), inetd(8), ntpd(8), timed(8)