Linux 系统时间配置
本文根据网络资料整理。 Linux 系统时间配置大致可以大致分为“手动”设置与基于 ntp 的配置两种方式。
手动设置系统时间
1. 说明
Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。Linux并没有默认哪个时钟系统。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。
2. 设置方法
date 042612492015.28
hwclock –w
说明:
第一步是设置时间,设置完成可以使用date命令查看是否正确,注意:时间设置格式为月日时分年.秒;
第二步是将系统时间写入硬件时钟,这样可以避免重启之后需要重新设置系统时间。
3. 相关操作命令
•查看硬件时钟
hwclock --show
•设置硬件时钟 通用的设置格式:hwclock/clock --set --date=“月/日/年 时:分:秒”。
hwclock --set --date="09/17/2003 13:26:00"
•硬件时钟与系统时钟同步
hwclock –hctosys
•系统时钟与硬件时钟同步
hwclock –systohc
通过 ntpd 服务同步设置时间
1. 说明
ntpd 服务是通过网络对系统时间进行同步配置的 Linux 服务,可以确保系统时间的一致性。
2. 配置同步时间
ntpdate $ntpserver
ntpserver 是网络时间服务器地址。
3. 配置系统开机时间同步
在/etc/rc.local中添加
/usr/sbin/ntpdate $ntpserver >> /var/log/ntpdate.log
另外,也可以使用 crontab 来定时对时间进行同步,在/etc/crontab中添加
10 5 * * * root ntpdate $ntpserver;hwclock -w
这样每天5:10自动进行网络校时,并同时更新BIOS的时间。
4. 网络时间同步服务器
时间服务器分为两种,一种是一级时间服务器,另外一种是二级时间服务器。如果是同步自己的服务器的时间,那么选择二级时间服务器,因为一级时间服务器是为二级时间服务器提供时间校对服务器,我们尽量不要增加一级服务器的压力。这种层级的概念和DNS的层级概念是一致的。
•一级时间服务器列表: http://support.ntp.org/bin/view/Servers/StratumOneTimeServers
•二级时间服务器列表: http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers
附二级服务器列表
0.pool.ntp.org 有域名负载均衡
0.cn.pool.ntp.org 有域名负载均衡
ntp.tuna.tsinghua.edu.cn 清华大学
time.windows.com 微软
ntp.fudan.edu.cn 复旦大学
注:除了使用外部时间服务器之外,也可以在局域网中搭建独立的时间同步服务器,其他机器从该时间同步服务器获取同步时间。
Q&A
1. no server suitable for synchronization found
执行ntpdate命令更新NTP客户端的时间时,如果报以下错误:
no server suitable for synchronization found
则可采用以下步骤检测:
(1) 在NTP服务端执行以下命令检测NTP服务是否运行
service ntpd status
(2) 运行ping命令检测NTP客户端与NTP服务端是否连通
ping NTP服务端IP
(3) 在NTP客户端执行
ntpdate -d NTP服务端IP
如果输出结果如下:
6 Nov 10:23:16 ntpdate[3521]: ntpdate [email protected] Tue ...
Looking for host 10.75.80.47 and service ntp
host found : 10.75.80.47
transmit(10.75.80.47)
transmit(10.75.80.47)
transmit(10.75.80.47)
transmit(10.75.80.47)
transmit(10.75.80.47)
10.75.80.47: **Server dropped: no data**
...
...
6 Nov 10:23:20 ntpdate[3521]: no server suitable for synchronization found
请按以下步骤处理:
a) 检查NTP服务端使用的ntp版本:
ntpq -c version
如果输出版本是 ntp4.2之后(含4.2)的版本,则请检测是否在restrict的定义中使用了notrust。如果有则删除notrust,再进行NTP时间同步。
在 /etc/ntp.conf 中检查 restrict 定义 如果有类似 restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap 的 notrust 定义,则对应删除。
b) 检查NTP服务端的防火墙是否开放NTP服务端口:udp 123
service iptables stop
执行以上命令关闭NTP服务端的防火墙,然后再进行NTP时间同步