【Linux】【修改时间】服务器时间和时区的修改
测试环境在linux CentOS-7.4系统上搭建,工作中需要改变服务器的时区和时间,最近关于时间修改问题上遇到一些问题,总结记录一下
# 基 本 操 作
1.查看系统当前时间
linux服务器有系统时间和硬件时间,可使用以下两个命令查看系统时间
date -R #命令1,-R以RFC-2822兼容日期格式显示时间
timedatectl status #命令2,status 可省略
以下是使用timedatectl命令查询的结果
Local time: Tue 2019-09-17 06:25:35 EEST #服务器时间
Universal time: Tue 2019-09-17 03:25:35 UTC #标准时间
RTC time: Tue 2019-09-17 03:25:48 #硬件时间
Time zone: Asia/Shanghai (EEST, +0300) #时区
NTP enabled: no #ntp校时状态
NTP synchronized: no
RTC in local TZ: yes
DST active: yes
Last DST change: DST began at #以下内容为夏令时开始和结束时间
Sun 2019-03-31 02:59:59 EET
Sun 2019-03-31 04:00:00 EEST
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2019-10-27 03:59:59 EEST
Sun 2019-10-27 03:00:00 EET
2.查看硬件时间
hwclock
3.修改时区
timedatectl set-timezone Europe/Kiev #timedatectl set-timezone 主时区/次时区
注:查看时区可进入到/usr/share/zoneinfo 文件中找到时区
4.修改时间
#修改时间前需要保证ntp校时关闭,否则无法修改时间
timedatectl set-ntp false#关闭ntp校时,可使用timedatectl命令查看ntp校时的状态
timedatectl set-ntp true #打开ntp校时
timedatectl set-time 15:00:00 #修改时间
timedatectl set-time 2019-09-12 #修改日期
#遇到的问题及解决方法
1.系统时钟和硬件时钟不一致
在修改完时间和日期后,务必执行以下命令,使系统时钟同步到硬件时钟
hwclock -w
2.使用date命令和timedatectl命令查看的时间不一致
观察发现使用date命令显示的是AST格式,使用timedatectl显示的是EDT格式,服务器时区正确显示应该是EDT
两者显示格式不一样,,一般是时间配置文件中不正确
执行以下命令查看设置的时区是否正确
cat /etc/profile
以上是我的查询结果,可以看出和我所要设置的时区不一致
编辑文档,将TZ的值改为需要的时区,保存后退出重新登录系统
再次查看可以看到date和timedatetcl命令显示的格式一致了
罗列一下目前常见时区:
缩写 | 地区 |
---|---|
EDT | 美国东部时间 |
EST | 英国时间 |
CST | 北京时间 |
EET | 东欧标准时间(UTC+2) |
EEST | 东欧夏令时间(UTC+3) |