/
sbin
/
Upload File
HOME
#! /bin/sh # # ntpdate - emulate the crufty old ntpdate utility from NTP Classic # # Not documented, as this is strictly a backward-compatibility shim. It's # based on the recipes at # http://support.ntp.org/bin/view/Dev/DeprecatingNtpdate # with corrections for modern ntpdig options. # # Debug this by giving the -n option, which causes it to echo the # generated ntpdig command rather than executing it. # # Known bugs: # * The -e and -p options of ntpdate are not yet implemented. # * ntpdate took 4 samples and chose the best (shortest trip time). # This takes the first. # # ntpdate ntpdig ntpd What it does # -4 -4 -q -4 Resolve DNS lookups to A records # -6 -6 -q -6 Resolve DNS lookups to AAAA records # -a N -a N -q Authentication # -b -S -q step time adjustments # -B -s -q slew time adjustments # -d -d -d debugging mode (implies -q) # -e N.N -q authdelay # -k file -k file -k file key file # -o N -q NTP Protocol version # -p N -q How many samples to take # -q default -q query/report only, don't set clock # (implies -u for ntpdate) # -s log to syslog (always enabled in ntpd) # -t N.N -t N.N request timeout # -u default unpriv port # -v verbose (ntpd is always more verbose than ntpdate) # -c name Send concurrent requests to resolved IPs for name # # -l file Log to file # -M msec Slew adjustments less than msec, # step adjustments larger than msec. # # SPDX-License-Identifier: BSD-2-Clause print_help() { echo "Usage: ntpdate [OPTIONS] HOST..." echo echo "Options:" echo " -4 Force IPv4 DNS name resolution" echo " -6 Force IPv6 DNS name resolution" echo " -a N Specify key number for authentication" echo " -b Force time step" echo " -B Force time slew" echo " -k FILE Specify key file" echo " -q Query only" echo " -s Log to syslog" echo " -t N.N Specify timeout" echo " -h Print help" } PASSTHROUGH="" ADJUST="" TIMEOUT="-t 1" setclock=yes echo=no log=no while getopts 46a:bBde:hk:no:p:qst:uv opt do case $opt in 4) PASSTHROUGH="$PASSTHROUGH -4";; 6) PASSTHROUGH="$PASSTHROUGH -6";; a) PASSTHROUGH="$PASSTHROUGH -a $OPTARG";; b) ADJUST="$ADJUST -S";; B) ADJUST="$ADJUST -s";; d) PASSTHROUGH="$PASSTHROUGH -d";; e) echo "ntpdate: -e is no longer supported." >&2;; h) print_help; exit;; k) PASSTHROUGH="$PASSTHROUGH -k $OPTARG";; n) echo=yes;; # Echo generated command, don't execute o) echo "ntpdate: -o is no longer supported." >&2;; p) echo "ntpdate: -p is no longer supported." >&2;; q) setclock=no;; s) log=yes;; t) PASSTHROUGH="$PASSTHROUGH -t $OPTARG"; TIMEOUT="";; u) ;; v) ;; esac done shift $(($OPTIND - 1)) if [ "$setclock" = yes -a -z "$ADJUST" ] then ADJUST="-s -S -M 500" fi if [ "$echo" = yes ] then echo ntpdig $ADJUST $TIMEOUT $PASSTHROUGH $* else if [ "$log" = yes ] then ntpdig $ADJUST $TIMEOUT $PASSTHROUGH $* 2>&1 | logger -t ntpdate else ntpdig $ADJUST $TIMEOUT $PASSTHROUGH $* fi fi #end