linux-centos 7 系统设置时区及同步时间

本文介绍如何在CentOS 7中查看并修改系统时区,包括使用timedatectl命令检查和设置时区,同步系统时间到北京时间的方法,以及设置定时任务保持时间同步。

参考文章:
https://blog.youkuaiyun.com/superlover_/article/details/83655646
https://www.jianshu.com/p/4160388ddc9f
https://blog.youkuaiyun.com/zyddj123/article/details/86560921

查看centos7 系统时区

首先,在centos7 系统可以使用命令:【timedatectl】查看系统的时区;使用timedatectl显示的结果如下:
在这里插入图片描述
可以看到我系统的时区已经为Asia/Shanghai

修改系统时区

如果上面的结果显示本系统的时区不正确,则应该使用命令对时区进行修改

# timedatectl set-timezone 时区名称
timedatectl set-timezone Asia/Shanghai 

如上面的命令,将系统时区设置为上海,这是因为我想使用上海的时间,当然你也可以通过指定其他的时区,将系统时间对齐为其他地区的时间。
如果想选用其他的时区,而有不知道其时区的具体写法,可以使用下面查看所有时区

# 1. 查看所有时区名称
timedatectl list-timezones
# 2. 查看亚洲各地的时区名称
timedatectl list-timezones | grep Asia

修改系统时间

同步系统时间(自动)

在同步系统时间的之前,首先需要修改系统的时区,这样在同步系统时间的时候才会将系统时间对齐到该时区。在同步系统时间时,由于起初并未修改系统的时区,导致每次同步系统时间都和宿主机不一致。宿主机使用的时间就是日常生活中使用的北京时间,但每次执行命令后,系统的时间都和北京时间不一致。最初我以为是同步系统时间的命令写错了,但是后来修改了系统时区之后,再次使用相同的同步命令,系统时间就同步为北京时间了。

# 同步系统时间的命令
# 语法格式:ntpdate 时间校准服务器域名/ip
# 1.使用域名进行同步
ntpdate cn.pool.ntp.org
# 2.使用ip进行同步
ntpdate 210.72.145.44
# 1和2是等效的

使用该命令的前提是,linux服务器能够连接公网,如果有些同学希望在内网的服务器进行系统时间同步,则需要询问自己公司的时间校准服务器。
当然公网的时间服务器一般来说有下面3个,大家可以随意使用:
1)美国标准技术院时间服务器:time.nist.gov(192.43.244.18)
2)上海交通大学网络中心NTP服务器地址:ntp.sjtu.edu.cn(202.120.2.101)
3)中国国家授时中心服务器地址:cn.pool.ntp.org(210.72.145.44)

手动修改系统时间

当然修改系统时间除了像上面使用时间服务器进行修改,也可以手动修改系统时间,具体命令是:

# 1. date -s "yyyymmdd hh:mm:ss"
# 修改系统时间为2021-10-01 20:00:00
date -s "20211001 20:00:00"

在这里插入图片描述

查看系统时间

在同步系统时间后,可以使用date命令查看当前系统的时间
在这里插入图片描述

设置定时任务

在进行手动同步系统时间之后,我们也可以写一个定时任务,定时进行系统时间同步,更新时间。
如下面的命令,设定了一个在每天凌晨12点进行系统时间同步定时任务。

# 1. 编辑定时任务列表
crontab -e
# 像使用vim一样对定时任务列表进行编辑,保存退出即可生效
0 12 * * * ntpdate cn.pool.ntp.org
<think>我们正在处理一个关于在Linux系统中配置网络时间同步设置时区的问题。根据用户提供的引用和之前的上下文,我们需要整合信息,提供一个清晰的步骤指南。主要步骤包括: 1.设置时区2.安装/配置NTP服务(网络时间同步) 3.手动同步时间(可选,用于立即生效) 4.设置硬件时钟同步(可选,防止重启后时间丢失) 我们将参考引用中的方法: -引用[1]提到删除旧的localtime并设置新的时区-引用[2]和[3]都强调了先设置时区同步时间的重要性,并给出了使用ntpdate命令同步时间的例子。 -引用[3]还提到了使用cron定时同步时间以及将系统时间写入硬件时钟(hwclock -w)。-引用[5]提到了使用timedatectl查看时间同步状态。 因此,我们可以按照以下步骤进行: ###步骤1:设置时区方法一:使用命令交互式设置(推荐) ```bashsudo dpkg-reconfigure tzdata#适用于Debian/Ubuntu#或者sudotzselect#适用于大多数Linux发行版``` 方法二:手动创建软链接(如亚洲/上海时区)```bashsudoln -sf /usr/share/zoneinfo/Asia/Shanghai/etc/localtime``` ###步骤2:安装NTP服务(如果尚未安装) 对于使用systemd的系统(如Ubuntu16.04+、CentOS7+),可以使用内置的systemd-timesyncd服务。也可以安装完整的NTP服务(如ntp或chrony)。选项1:使用systemd-timesyncd(轻量级) ```bashsudo timedatectlset-ntptrue#启用NTP同步```选项2:安装ntpdate(用于手动同步)或ntp/chrony(用于持续同步) ```bash#对于Debian/Ubuntusudoapt updatesudoapt installntpdate#一次性同步#或者安装ntp服务(持续同步)sudo aptinstall ntp#对于CentOS/RHELsudoyuminstall ntpdate#一次性同步#或者安装ntp服务(持续同步) sudoyuminstall ntp``` ###步骤3:手动同步时间(如果需要立即同步) 使用ntpdate命令(如果已安装): ```bashsudo ntpdatentp.aliyun.com#使用阿里云NTP服务器#或者sudontpdate cn.pool.ntp.org```注意:如果系统时间与网络时间差异很大,可能需要先停止ntp服务再同步:```bashsudosystemctlstop ntpsudo ntpdatentp.aliyun.comsudosystemctlstart ntp``` ###步骤4:启用并启动NTP服务(如果安装了ntp或chrony)对于ntp服务: ```bashsudo systemctl enablentpsudosystemctlstart ntp``` 对于chrony(如果安装的是chrony):```bashsudosystemctlenable chronydsudo systemctl startchronyd```###步骤5:将系统时间同步到硬件时钟(可选,防止重启后时间丢失)```bashsudohwclock -w``` ###步骤6:验证时间同步状态使用`timedatectl`命令查看时间同步状态: ```bashtimedatectlstatus``` 输出中应该看到: -`Systemclock synchronized: yes`(表示系统时钟已同步-`NTP service: active`(表示NTP服务已激活) 或者使用`ntpq-p`(如果安装了ntp)查看NTP服务器状态。###设置定时同步(可选,如果使用ntpdate) 可以设置cron任务定期同步,例如每天凌晨1点同步: ```bash#编辑当前用户的cron任务crontab -e``` 添加一行:```cron01* ** /usr/sbin/ntpdate ntp.aliyun.com >/dev/null2>&1&& /sbin/hwclock -w```###注意事项1.时区设置必须先于时间同步,否则同步时间可能不是本地时间。 2.如果系统有硬件时钟(RTC),建议将系统时间写入硬件时钟,以避免重启后时间重置。 3.国内用户建议使用国内的NTP服务器(如阿里云的ntp.aliyun.com)以提高同步速度和准确性。 ---§§相关问题§§1.如何检查Linux系统时区设置是否正确?2.如何修改Linux系统的NTP服务器地址?3.为什么Linux系统重启后时间会重置?4.如何在Linux系统中安装和配置chrony服务?[^1]:修改Linux系统、硬件时间修改及同步网络时间[^2]:linux-centos7系统设置时区同步时间[^3]:Linux Shell脚本_设置时区同步时间[^4]: ubuntu设置时区,网上同步时间[^5]: linux命令进入设置时间,Linux系统用命令行配置时区同步系统时间</think>### 在Linux系统中配置网络时间同步时区设置 #### 一、设置时区(关键前提) 时区设置必须在时间同步前完成,否则同步时间值会错误[^2][^3]: 1. **交互式设置**(推荐) ```bash sudo dpkg-reconfigure tzdata # Debian/Ubuntu # 或 sudo timedatectl set-timezone Asia/Shanghai # 大多数现代发行版 ``` 2. **手动设置**(直接创建软链接) ```bash sudo rm -f /etc/localtime # 删除旧时区文件[^1] sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 链接到上海时区[^3] ``` #### 二、配置网络时间同步 ##### 方法1:使用systemd-timesyncd(推荐) ```bash # 启用NTP服务 sudo timedatectl set-ntp true # 强制立即同步 sudo systemctl restart systemd-timesyncd # 验证状态 timedatectl status | grep "NTP synchronized" ``` 输出应显示:`NTP synchronized: yes`[^5] ##### 方法2:使用ntpdate(传统方式) ```bash # 安装工具 sudo apt install ntpdate # Debian/Ubuntu sudo yum install ntpdate # CentOS/RHEL # 手动同步(国内推荐阿里云服务器) sudo ntpdate ntp.aliyun.com # 或 cn.pool.ntp.org[^2][^3] # 写入硬件时钟 sudo hwclock -w # 防止重启后丢失时间[^1][^3] ``` #### 三、配置自动定时同步(cron任务) ```bash # 添加每日同步任务 (crontab -l ; echo "0 3 * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1 && /sbin/hwclock -w") | crontab - ``` 此命令每天凌晨3点同步时间并写入硬件时钟[^3] #### 四、验证配置 1. **检查时区** ```bash ls -l /etc/localtime # 应显示链接到正确时区 date +"%Z %z" # 输出示例: CST +0800 ``` 2. **检查时间同步状态** ```bash timedatectl # 查看完整时间信息 # 关键字段: # System clock synchronized: yes # NTP service: active ``` #### 五、故障排除 - **同步失败**:检查防火墙是否开放UDP 123端口 - **时间偏差大**:先手动同步`sudo ntpdate -u ntp.aliyun.com` - **服务未启动**:`sudo systemctl enable --now systemd-timesyncd` > **重要提示**:国内用户建议使用阿里云(`ntp.aliyun.com`)或清华(`ntp.tuna.tsinghua.edu.cn`)等国内NTP服务器同步速度更快更稳定[^2][^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值