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:
sudo apt-get install ntpdate # 或者 yum
ntpdate ntp3.aliyun.com
国内公共 ntp 服务器:
- 国家授时中心:ntp.ntsc.ac.cn
- 阿里云:ntp3.aliyun.com
四、时间同步服务(常驻后台)
建议用 chronyd,有 docker 的可以跑容器版本的 chronyd
五、只修改应用本身的时间:libfaketime
这种需求常见于时光旅行测试(Time-Travel Testing),需要修改应用的时间,以确认与时间相关的逻辑是否正确(比如订单是否过期之类的)。
为了不影响系统上别的软件,最好是只修改应用本身的时间,不会影响操作系统全局。比如对运行在 kubernetes 集群上的一套微服务进行时光旅行 API 测试,修改(节点)操作系统的时间很可能会导致集群节点故障。
libfaketime 可以通过环境变量 FAKETIME
很方便的设置 fake 的 time,而不影响系统上其他环境的应用。这可以保证别的程序不受系统时间跃迁的影响。
我实际测试这个库后发现:
- libfaketime 设置时间默认有 10s 的缓存,可通过设置环境变量 `FAKETIME_CACHE_DURATION 进行修改。参见 Time modification does not take effect immediately
- Python 能直接通过修改环境变量
FAKETIME
达到修改时间的目的。 - Dotnet 设置的环境变量
FAKETIME
对 libfaketime 无效,这可能和 dotnet 自身的环境变量模型有关。- dotnet 需要通过将参数写入
/etc/faketimerc
或$HOME/.faketimerc
修改时间。
- dotnet 需要通过将参数写入
- docker+dotnet+libfaketime 测试,发现性能问题比较严重。
修改环境变量的方法很方便,但不适合用于进程间相互修改时间(比如我 ssh 进容器改容器时间),有时可能会失效。而写入配置文件的方法可以跨进程通信,更可靠。
Linux 服务器修改时间与时间同步的更多相关文章
- linux服务器应用NTP配置时间同步
linux服务器应用NTP配置时间同步 • 为什么建议使用ntpd而不是ntpdate? #####原因很简单,ntpd是步进式的逐渐调整时间,而ntpdate是断点更新,比如现在服务器时间是9.18 ...
- Linux服务器修改时区时间
时间的一致性很关键,对于日志的分析和程序的对接都至关重要! 01.tzselect 修改时区 可以使用命令 tzselect,修改时区.操作示例: $ tzselect Please identify ...
- Linux查看修改时间、时区
同步网络时间 yum install ntpntpdate time.nist.gov timedatectl set-timezone Asia/Shanghai如果上面time.nist.gov服 ...
- Linux下修改时间时区的方法介绍
点评:在Linux中,用于时钟查看和设置的命令主要有date.hwclock和clock.其中,clock和 hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件 ...
- Linux服务器同步时间
进行Linux服务器的时间同步是一件需要注意的事情,不然,集群中的服务器时间不同将导致许多奇怪问题发生, 如果没有安装crontab,那么,使用yum install crontabs进行安装和启动, ...
- linux下修改时间和时区
一.修改linux的时间在root用户下,使用date指令:date -s1.只修改日期,不修改时间,输入: date -s -- 2.只修改时间,输入: date -s :: 3.同时修改日期时间, ...
- Linux下修改时间
修改linux的时间可以使用date指令 date命令的功能是显示和设置系统日期和时间. 输入date 查看目前系统时间. 修改时间需要 date -功能字符 修改内容 命令中各选项的含义分别为: - ...
- linux 下修改时间
修改linux的时间可以使用date指令 date命令的功能是显示和设置系统日期和时间. 输入date 查看目前系统时间. 修改时间需要 date -功能字符 修改内容 命令中各选项的含义分别为: - ...
- 云服务器linux系统修改时间和时区
申请的云服务器时间不对,用同步网络时间的命令执行后依然有问题. 解决办法: # tzselect [root@ylyuat2-web02 logs]# TZ='Asia/Shanghai'[root@ ...
随机推荐
- nginx只允许域名访问,禁止ip访问 禁止其他域名访问
背景:为什么要禁止ip访问页面呢?这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生. 解决方法:这里介绍修改配置文 ...
- linux清除git账号密码
执行vi ~/.git-credentials,可以看到被保存的账号密码,删掉或者修改都可以了! eg:http://账号:密码@git仓库http地址
- laravel 通过ftp上传的时候报错 Use of undefined constant FTP_BINARY - assumed 'FTP_BINARY
用Laravel中的filesystems里面的ftp上传文件时报错.在windows上开发,文件上传的时候碰到上面的问题,搜了些资料,发现是php7的ftp拓展默认未开启. filesystems是 ...
- 从Windows命令行启动MySQL
SERVER: 从Windows命令行启动MySQL 可以从命令行手动启动MySQL服务器.可以在任何版本的Windows中实现. 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS ...
- RabbitMQ之Topic交换器模式开发
Topic交换器,即主题模式,进行规则匹配. 一.Provider 配置文件 spring.application.name=provider spring.rabbitmq.host=192.168 ...
- Windows 开始 运行中所打开的默认程序以及优先级
Windows 开始 运行中所打开的默认程序以及优先级 Default app/softwares and priority for Windows/start/run 商务合作,科技咨询,版权转让: ...
- 搭建Nuxt项目(搭配Element UI、axios)
使用Nuxt Nuxt.js文档:https://zh.nuxtjs.org/guide/ 开始 初始化Nuxt项目 npx create-nuxt-app <项目名> // or yar ...
- 深入学习c++--容器
1. 简介 1. 序列式容器: array, vector, deque, list, forward_list --- 数组 或者 指针实现 2. 关联容器: set, map, multiset, ...
- C/C++中回调函数【重要】
参考学习:https://www.cnblogs.com/xuelisheng/p/9339924.html 1. 回调函数定义 回调函数就是一个通过函数指针调用的函数. 如果你把 函数的指针(地址) ...
- Spring cloud微服务安全实战-6-1本章概述
这一章来讲一下,微服务之间的通讯安全. 当前这个架构还存在的问题 在网关上做限流还是有一些问题的.例如我的订单服务限流是100,库存服务限流也是100.但是我的订单服务会调用我的库存服务.那么在网关这 ...