linux系统时间和硬件时间同步
如何让Linux时间与internet时间同步(CentOS)?
如何让Linux时间与internet时间同步(CentOS)?
可以使用ntpdate命令。ntpdate命令使用网络时间协议(NTP)设置日期和时间,通过轮询指定的确定正确时间的NTP服务器来设置本地日期和时间。它从指定的每个服务器获得了一些样本,并应用标准NTP时钟过滤器和选择算法来选择最好的样本。
命令格式:ntpdate 时间服务器
用法示例:
$ ntpdate
如何在linux suse中配置NTP服务器?
在suse上配置ntp
$vim
#增加时间源
server 192.168.56.1
$chkconfig ntp on # 在系统重启时启动服务
$service ntp start # 启动ntp
$service ntp status # 查看ntp状态
问题:
1)为什么在故意改了一个错误的时间,ntpd没有更新时间?
如果差异很大,需要重新doing an Initial Synchronization,If the time on the local server is very different from that of its primary time server your NTP daemon will eventually terminate itself leaving an error message in the /var/log/messages file. You should run the ntpdate -u command to force your server to become instantly synchronized with its NTP servers before starting the NTP daemon for the first time. The ntpdate command doesnt run continuously in the background, you will still have to run the ntpd daemon to get continuous NTP updates.
2)中选择主NTP Server
选择了哪个server做为主server是按stratum的大小决定的?应该不是,由ntp的算法决定,如在virtualbox中的suse怎么样都无法选择外部时钟源,ntpd在几次poll time后算法就决定使用local源,郁闷啊。由于是虚拟机中运行,时钟和cpu的频率有关系,跳得比真实的硬件快,在virtaulbox中ntp的算法认为local源比外部源更准确就使用了local的,解决的方法可以去掉local源,只使用外部源或者在crontab中每分钟执行一次ntpdate了。
即使把本机的stratum设置为比外部源更高的,过了一段时间以后,virtualbox中的suse还是选择了local,郁闷again
fudge 127.127.1.0 stratum 12 # not disciplined
remote refid st t when poll reach delay offset jitter
LOCAL(0) .LOCL. 15 l 9 64 1 0.000 0.000 0.002
192.168.56.1 139.114.32.134 14 u 8 64 1 3.739 -53.045 0.002
注意最开始的时候,ip地址前面是没有符号的,poll几次以后ntp就会选择一个主时间源,前面带 * 号标识。
3)windows上的ntp server配置
官方推荐的win上的ntp server,
3)如何知道ntp的运行状态
使用ntpq命令
$watch ntpq -p # 可以使用watch命令来查看一段时间内服务器各项数值的变化
使用ntpq命令查看与您同步的服务器. 它提供你一份时间服务器配置清单,包括延误值(delay),偏差值(offset)和抖动值(jitter). 为了能正确同步,延迟值和偏移值应该不为零,抖动值(jitter)应小于100 .
$/usr/local/ntp/bin/ntpq -p
显示如下:
remote refid st t when poll reach delay offset jitter
.ACTS. 1 u 1606 1024 22 357.845 334.375 71.122
*LOCAL(0) .LOCL. 10 l 11 64 377 0.000 0.000 0.001
ntpq -p 可以列出目前我们的NTP与相关的上层NTP的状态,几个字段的意义为:
remote:亦即是 NTP 主机的 IP 或主机名称啰~注意最左边的符号,~#peer
*
它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供
它将作为辅助的NTP Server和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管
-
远程服务器被clustering algorithm认为是不合格的NTP Server
x
远程服务器不可用
refid:参考的上一层 NTP 主机的地址
st:stratum 阶层
when:几秒钟前曾经做过时间同步化更新的动作;
poll:下一次更新在几秒钟之后;
reach:已经向上层 NTP 服务器要求更新的次数
delay:网络传输过程当中延迟的时间,单位为 10^(-6) 秒
offset:时间补偿的结果,单位与 10^(-6) 秒
jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒。
也可以检查一下BIOS时间与Linux系统时间的差异,就是/var/lib/ntp/drift的内容,就能了解到Linux系统时间与BIOS硬件时钟到底差多久?单位为 10^(-6) 秒
下面的从上摘下来的,详细说明了ntpq -p输出的每个列的意思,reach列为377表示前8次同步都成功。
Checking the NTP Status
The command line utility ntpq can be used to check the status of a NTP daemon on either the local machine or on a remote host.
ntpq can be run in an interactive mode or in batch mode. In batch mode, ntpq executes a command and returns to the command prompt. The parameter -p (peers) lets ntpq print the status of a NTP daemon. Enter
ntpq -p
to display the status of the daemon on the local machine, or
ntpq -p ntp_server
to display the status of the daemon on the remote host ntp_server. The command should print a table with one status line for each reference time source which has been configured for the NTP daemon on the specified host:
remote refid st t when poll reach delay offset jitter
LOCAL(0) LOCAL(0) 12 l 30 64 377 0.000 0.000 0.000
*GENERIC(0) .DCFa. 0 - 24 64 377 0.000 0.050 0.003
172.16.3.103 .PPS. 1 u 36 64 377 1.306 -0.019 0.043
The table above shows the output for a NTP daemon which has 3 reference time sources: its own local clock, a DCF77 radio clock as refclock-0, plus an NTP daemon on the network, with IP address 172.16.3.103.
If the first character of a line is not blank then it contains a qualifier for the corresponding reference time source. Immediately after the daemon has been started all qualifiers are blank. The NTP daemon needs several polling cycles to check the available time sources and declare one of them as the reference it synchronizes to.
An asterisk * in the first column marks the reference time source which is currently preferred by the NTP daemon, the character marks high quality candidates for the reference time which could be used if the currently selected reference time source should become unavailable.
The column remote displays the IP address or the host name of the reference time source, where LOCAL refers to the local clock. The refid shows the type of the reference clock, where e.g. LOCAL or LCL refers to the local clockagain, .DCFa. refers to a standard DCF77 time source, and .PPS. indicates that the reference clock is disciplined by a hardware pulse-per-second signal. Other identifiers are possible, depending on the type of the reference clock.
The column st reflects the stratum number of the reference time source. In the example above, the local clock has stratum 12, the remote time server at 172.16.3.103 has stratum 1 which is the best you can see across the network, and the local radio clock has stratum 0, so the radio clock is currently being preferred.
Every time a when count reaches the poll number in the same line, the NTP daemon queries the time from the corresponding time source and resets the when count to 0. The query results of each polling cycle are filtered and used as a measure for the clocks quality and reachability.
The column reach shows if a reference time source could be reached at the last polling intervals, i.e. data could be read from the reference time source, and the reference time source was synchronized. The value must be interpreted as an 8 bit shift register whose contents is for historical reasons displayed as octal values. If the NTP daemon has just been started, the value is 0. Each time a query was successful a 1 is shifted in from the right, so after the daemon has been started the sequence of reach numbers is 0, 1, 3, 7, 17, 37, 77, 177, 377. The maximum value 377 means that the eight last queries were completed successfully.
Queries are considered successful if data can be received from the time source, and the time source in turn claims to be synchronized to some other timesource. In case of a hardware reference clock this means the query considered unsuccessful if the hardware reference clock is not synchronized to its incoming time signal, e.g. because the clocks antenna has been disconnected, or if no data can be received e.g. because the serial cable to an external device has been disconnected.
The NTP daemon must have reached a reference time source several times (reach not 0) before it selects a preferred time source and puts an asterisk in the first column.
The columns delay, offset and jitter show some timing values which are derived from the query results. In some versions of ntpq the last column is labeled disp (for dispersion) instead of jitter. All values are in in milliseconds. The delay value is derived from the roundtrip time of the queries. The offset value shows the difference between the reference time and the system clock. The jitter value indicates the magnitude of jitter between several time queries.