Linux系统时间比现在时间快8小时的解决方法:
1、vi /etc/sysconfig/clock #编辑文件
ZONE="Asia/Shanghai"
UTC=false #设置为false,硬件时钟不于utc时间一致
ARC=false
2、修改localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #linux的时区设置为上海
3、时间同步
yum install ntp #需要先安装ntp服务器
ntpdate us.pool.ntp.org #对准时间
4、写入
/sbin/hwclock --systohc #设置硬件时间和系统时间一致并校准
至此,linux系统时间和计算机硬件时间都是cst时间了,并且为上海时区。
5、每10分钟与服务器同步
crontab -e
0-59/10 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP
加入定时计划任务,每隔10分钟同步一下时钟。
有很多朋友会问,我的CMOS时间是正确的当前时间,我的Linux也设置了北京时区,为什么系统的时间比当前快了8小时。
要解决这个问题,首先要确认当前CMOS显示的时间是否是当前的时间,如果是则你的CMOS是非UTC时间(即CST当地时间),要修改
/etc/sysconfig/clock文件,将里面的UTC=true 改为 UTC=false (告诉Linux硬件设置的是当地时间)
这个是多数快8小时的原因,因为安装Linux时默认选项是使用UTC时间(可能国外电脑的CMOS都是设置的UTC时间),系统误认为你的CMOS是UTC时间,而你又选择了+8的时区,所以Linux在CMOS时间上加了8小时作为系统的时间
更改时区
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
读取硬件时间到系统
clock --hctosys
输入Date查看当前是否为 CST时间(CST表示当地时间,如我们设置的Shanghai ),如果时间不正确用以下方式修改时间
date -s 2010-02-03 12:00:00
将系统时间写入硬件
clock --systohc
[自动同步时间的方法]
(1) 开启ntpd服务,即配置ntp服务器实现时间同步。
(2) 利用ntp客户端程序,即ntpdate同步时间。
注意:因为ntp服务器本来就会与上层时间服务器进行同步,所以在默认的情况下,ntp服务器不可以使用ntpdate,也就是说ntpdate和ntpd不能同时启用。
1. 开启ntpd服务同步时间
首先介绍两个可用的ntp服务器
中国ntp服务器:cn.ntp.org.cn
中国教育网:[仅 CERNET IP 可用] | edu.ntp.org.cn |
上海交通大学网络中心NTP服务器:ntp.sjtu.edu.cn
1.1 与ntp服务相关的配置文件和数据文件
(1) /etc/ntp.conf: ntp服务器的主要配置文件
(2) /usr/share/zoneinfo/: 由tzdata所提供,为各时区的时间格式对应文件。例如我国的时区格式对应文件是/usr/share/zoneinfo/Asia/Shanghai。这个目录下的文件与下面要介绍的两个文件clock和localtime是有关系的
(3) /etc/sysconfig/clock: 设置时区与是否使用UTC时钟的配置文件。每次开机后Linux会自动读取这个文件来设置自己系统默认所需要显示的时间。比如说,在我们中国的本地时间设置中,这个文件应该会有一行 ZONE="Asia/Shanghai" 的字样,这表示我们的时间配置文件要使用/usr/share/zoneinfo/Asia/Shanghai那个文件
(4) /etc/localtime: 就是本地端的时间配置文件,Linux会将/usr/share/zoneinfo/Asia/Shanghai这个文件内容复制到/etc/localtime中,未来我们的时间显示就以Shanghai这个配置文件为准。
1.2 ntp服务配置
(1) 首先编辑ntp.conf文件
[root@node1 ~]# vim /etc/ntp.conf
# 处理权限问题
restrict 127.0.0.1 #这两个是默认值,放行本机来源
restrict -6 ::1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # 放行局域网来源
# 设置主机来源,请将原来的[0|1|2|3].centos.pool.ntp.org设置注释掉
restrict cn.pool.ntp.org # 放行cn.pool.ntp.org进入本ntp服务器
server cn.pool.ntp.org prefer # 以这台主机为优先
server ntp.sjtu.edu.cn
(2) 启动ntp服务,并观察
# 启动ntpd服务
[root@node1 ~]# service ntpd start
# 配置开机自启
[root@node1 ~]# chkconfig ntpd on
# 查看同步状态,注意:需要一段时间,才能同步成功
[root@node1 ~]# ntpstat
synchronised to NTP server (85.199.214.100) at stratum 2
time correct to within 325 ms
polling server every 128 s
[root@node1 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*85.199.214.100 .GPS. 1 u 35 64 377 310.011 -10.192 3.191
2. ntpdate同步时间
(1) 手动同步时间
[root@node1 ~]# ntpdate cn.pool.ntp.org
3 Jun 18:06:16 ntpdate[2317]: adjust time server 202.112.29.82 offset -0.007719 sec
#注意:如果会出现以下提示:no server suitable for synchronization found
#加入-u参数,来同步时间
ntpdate -u cn.pool.ntp.org
#时间同步完成后,执行命令hwclock -w,将当前系统时间写入BIOS。另外hwclock -r可读取BIOS中的时间
(2) 配置定时任务,同步时间
[root@node1 ~]# crontab -e
# 每过半个小时同步一次
0 */30 * * * /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1; /sbin/hwclock -w
(3) 配置开启启动校验
编辑/etc/rc.d/rc.local文件(vim /etc/rc.d/rc.local),在文件末尾添加如下内容
/usr/sbin/ntpdate -u cn.pool.ntp.org> /dev/null 2>&1; /sbin/hwclock -w