CentOS7保留本地时区前提下与异时区远程服务器时间同步的Python实现方法
CentOS7 不改本地时区与GMT远程服务器时间同步Python实现方案
核心原理
操作系统底层存储的时间为UTC时间戳,时区仅为上层展示转换规则,因此仅需要同步两端的UTC时间戳即可,完全不需要修改本地EDT时区配置。GMT时区的服务器时间与UTC时间数值一致,同步后本地EDT时区会自动将UTC时间转换为正确的本地时间展示。
方案1:NTP协议同步(推荐,精度可达毫秒级)
适用于远程服务器开放NTP服务(默认UDP 123端口)的场景,是时间同步的标准实现。
前置依赖
安装Python NTP库:
pip install ntplib
同步代码
import ntplib import subprocess import os # 替换为你的远程GMT服务器的IP/域名 REMOTE_NTP_SERVER = "你的远程服务器地址" def sync_system_time(): # 检查是否为root权限 if os.geteuid() != 0: print("错误:必须用root权限执行脚本才能修改系统时间") exit(1) client = ntplib.NTPClient() try: # 从远程NTP服务器获取UTC时间戳,NTP协议返回的都是UTC时间,无需处理时区 response = client.request(REMOTE_NTP_SERVER, version=3, timeout=5) utc_timestamp = response.tx_time # 用@前缀直接传入UTC时间戳设置系统时间,无视本地时区 subprocess.run(["date", "-s", f"@{utc_timestamp}"], check=True) # 同步时间到硬件时钟,避免重启后时间重置 subprocess.run(["hwclock", "-w"], check=True) print(f"时间同步成功,当前UTC时间戳:{utc_timestamp}") except Exception as e: print(f"同步失败:{str(e)}") if __name__ == "__main__": sync_system_time()
方案2:HTTP Date头同步(无NTP服务时备用)
如果远程服务器仅开放HTTP/HTTPS服务,可以通过接口响应头的标准Date字段获取时间,精度为秒级。
前置依赖
安装HTTP请求库:
pip install requests
同步代码
import requests import subprocess import os from email.utils import parsedate_to_datetime # 替换为你的远程GMT服务器的可访问HTTP地址,根路径即可 REMOTE_HTTP_URL = "http://你的远程服务器地址" def sync_system_time(): if os.geteuid() != 0: print("错误:必须用root权限执行脚本才能修改系统时间") exit(1) try: # 发送HEAD请求减少传输开销,仅获取响应头 resp = requests.head(REMOTE_HTTP_URL, timeout=5) # 解析HTTP标准Date头,直接得到UTC时间 date_str = resp.headers["Date"] utc_dt = parsedate_to_datetime(date_str) utc_timestamp = utc_dt.timestamp() # 设置系统时间 subprocess.run(["date", "-s", f"@{utc_timestamp}"], check=True) subprocess.run(["hwclock", "-w"], check=True) print(f"时间同步成功,当前UTC时间:{utc_dt}") except Exception as e: print(f"同步失败:{str(e)}") if __name__ == "__main__": sync_system_time()
注意事项
- 脚本必须使用
root用户执行,否则没有修改系统时间的权限 - 同步完成后可执行
date查看本地EDT时间是否符合预期,执行date -u查看UTC时间,和远程GMT服务器的时间对比应该完全一致 - 如需定期自动同步,可将脚本加入root的crontab定时任务,例如每小时同步一次的配置为:
0 * * * * /usr/bin/python3 /你的脚本存储路径/sync_time.py
内容的提问来源于stack exchange,提问作者pabitra dalei
相关产品推荐
相关产品推荐

