Linux 服务器修改时间与时间同步

设置时间

date --set '2015-11-23 0:10:40'  # 方法一,通用
timedatectl set-time '2015-11-23 08:10:40'  # 容器内可能不支持

设置时区

# 方法一,通用
# 对容器而言,也可以直接将宿主机的下面俩文件映射到容器内
# 或者有的容器支持使用环境变量
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo 'Asia/Shanghai' >/etc/timezone

# 方法二,容器内可能不支持
timedatectl set-timezone UTC

同步时间(一次性)

Alpine Linux: ntpd -d -q -n -p ntp3.aliyun.com,立即同步时间,不限制同步间隔

CentOS/Ubuntu: sntp -S ntp3.aliyun.com,这句我还没跑成功过。sntp 需要先安装再使用

国内公共 ntp 服务器:

  1. 国家授时中心:ntp.ntsc.ac.cn
  2. 阿里云:ntp3.aliyun.com

时间同步服务

建议用 chronyd,有 docker 的可以跑容器版本的 chronyd


至于为啥要在容器内修改时间/同步时间,因为公司要测试有关时间的产品逻辑,要提供这方面的 API。而应用在设计时没有考虑过要修改时间,因此时间相关的方法没有抽象成接口。
所以就只能给容器添加相应的权限,然后通过命令行修改测试服务器的系统时间了。。

P.S. ntpdate 已经被标记为 Deprecated,尽量不要用它了

你可能感兴趣的:(Linux 服务器修改时间与时间同步)