但行好事
莫论前程❤

Linux时间同步ntpd和ntpdate的用法

转载自:http://blog.sina.com.cn/s/blog_636a55070101u1mg.html

动态查看linux系统的当前时间

watch -n 1 date

使用ntpd来同步时间

需要同步时间的时候推荐使用ntpd来同步,因为ntpdate同步时间的时候会造成时间的跳跃

而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。

要注意的是,ntpd有一个自我保护设置: 如果本机与上源时间相差太大, ntpd不运行. 所以新设置的时间服务器一定要先ntpdate从上源取得时间初值, 然后启动ntpd服务。ntpd服务运行后, 先是每64秒与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.

关于ntpd的配置如下:

/etc/ntp.conf:这个是NTP daemon的主要设置文件,也是 NTP唯一的设定文件。

/usr /share/zoneinfo/:在这个目录下的文件其实是规定了各主要时区的时间设定文件,例如北京地区的时区设定文件在 /usr/share/zoneinfo/Asia/Beijing 就是了。这个目录里面的文件与底下要谈的两个文件(clock 与localtime)是有关系的。

/etc/sysconfig/clock:这个文件其实也不包含在NTP 的 daemon 当中,因为这个是 linux 的主要时区设定文件。每次开机后,Linux 会自动的读取这个文件来设定自己系统所默认要显示的时间。

/etc /localtime:这个文件就是“本地端的时间配置文件”。刚刚那个clock 文件里面规定了使用的时间设置文件(ZONE) 为/usr/share/zoneinfo/Asia/Beijing,所以说,这就是本地端的时间了,此时, Linux系统就会将Beijing那个文件另存为一份 /etc/localtime文件,所以未来我们的时间显示就会以Beijing那个时间设定文件为准。

/etc/timezone:系统时区文件

vim /etc/ntp.conf 
# 1. 关于权限设定部分 
#   权限的设定主要以 restrict 这个参数来设定,主要的语法为: 
#   restrict IP mask netmask_IP parameter 
#   其中 IP 可以是软件地址,也可以是 default ,default 就类似 0.0.0.0 
#   至于 paramter 则有: 
#   ignore :关闭所有的 NTP 联机服务 
#   nomodify:表示 Client 端不能更改 Server 端的时间参数,不过,
#   Client 端仍然可以透过 Server 端来进行网络校时。 
#   notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域 
#   noquery :不提供 Client 端的时间查询
#   notrap :不提供trap这个远程事件登入
#  如果 paramter 完全没有设定,那就表示该 IP (或网域)“没有任何限制”
restrict default nomodify notrap noquery # 关闭所有的 NTP 要求封包 
restrict 127.0.0.1    #这是允许本级查询
restrict 192.168.0.1 mask 255.255.255.0 nomodify 
#在192.168.0.1/24网段内的服务器就可以通过这台NTP Server进行时间同步了 
# 2. 上层主机的设定 
#  要设定上层主机主要以 server 这个参数来设定,语法为:
#  server [IP|HOST Name] [prefer]
#  Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数 
#  后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为 
#  时间校正的对应。另外,为了解决更新时间封包的传送延迟动作, 
#  所以可以使用 driftfile 来规定我们的主机 
#  在与 Time Server 沟通时所花费的时间,可以记录在 driftfile  
#  后面接的文件内,例如下面的范例中,我们的 NTP server 与  
#  cn.pool.ntp.org联机时所花费的时间会记录在 /etc/ntp/drift文件内 
server 172.21.68.2
server 172.21.68.3
server 1.pool.ntp.org
server cn.pool.ntp.org prefer
#其他设置值,以系统默认值即可
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay  0.008
keys /etc/ntp/keys
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

driftfile /var/lib/ntp/drift
pidfile   /var/run/ntpd.pid
logfile /var/log/ntp.log


# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.


restrict    default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery


# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.


restrict 127.0.0.1
server 127.127.1.0

fudge  127.127.1.0 stratum 10

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#broadcast 192.168.1.255 autokey        # broadcast server
#broadcastclient                        # broadcast client
#broadcast 224.0.1.1 autokey            # multicast server
#multicastclient 224.0.1.1              # multicast client

#manycastserver 239.255.254.254         # manycast server
#manycastclient 239.255.254.254 autokey # manycast client


server ntp.aliyun.com iburst minpoll 4 maxpoll 10
restrict ntp.aliyun.com nomodify notrap nopeer noquery


# Enable public key cryptography.
#crypto

includefile /etc/ntp/crypto/pw

interface listen 10.10.202.156
server 127.0.0.1

# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography. 

keys /etc/ntp/keys

# Specify the key identifiers which are trusted.
#trustedkey 4 8 42

# Specify the key identifier to use with the ntpdc utility.

不同机器之间的时间同步,使用ntpdate同步时间

为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务器来同步不同机器的时间。一台机器,可以同时是ntp服务器和ntp客户机。在网络中,推荐使用像DNS服务器一样分层的时间服务器来同步时间

使用ntpdate比较简单。用法:

ntpdate [-nv] [NTP IP/hostname]

例如:

ntpdate 10.10.202.156               #标准机
ntpdate time.ntp.org
ntpdate cn.pool.ntp.org

但这样的同步,只是强制性的将系统时间设置为ntp服务器时间。如果cpu tick有问题,只是治标不治本。所以,一般配合crond命令,来进行定期同步设置。比如,在crontab中添加:

vim /etc/crontab  # 编辑crontab
# service crond status 查看crond进程状态
crond (pid  16632) is running...
# crontab -e   # 打开编辑器
0 12 * * * * /usr/sbin/ntpdate 192.168.0.1

或者

0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

这样,会在每天的12点整,同步一次时间。ntp服务器为192.168.0.1。

分 时 日 月 星期 要运行的命令

第1列分钟0~59
第2列小时0~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~7(0和7表示星期天)
第6列要运行的命令

系统时间与硬件时间互相同步

把系统时间同步给硬件时间

hwclock --systohc (system clock to hardware clock)

把硬件时间同步给系统时间

hwclock --hctosys (hardware clock to system clock )
赞(3) 打赏
未经允许不得转载:刘鹏博客 » Linux时间同步ntpd和ntpdate的用法
分享到: 更多 (0)

评论 1

评论前必须登录!

 

    觉得文章有用就打赏一下文章作者

    支付宝扫一扫打赏

    微信扫一扫打赏