1. 概述
- 最近也不知道写啥了, 把之前的老文档整理一下, 凑个数什么的
- 配置时间这种工作, 偶尔还是要用一下
- 主要描述 3 个命令的简单适用
- ntpdate
- hwlock
2. ntpdate
1. 概述
- 用于同步时钟的命令
2. 机制
- 通常是有一个服务器对外提供时间
- 客户端可以与时间服务器同步
- ntp 是他们之间交互的协议
3. 命令
- ntpdate
-
概述
- 从服务端获取时间
-
命令
# 成功后, 会把 系统时间, 设置为 ntpdate 获取的时间 > ntpdate <ntpserver> # 无脑上这个, 基本不会错 > ntpdate pool.ntp.org
-
3. date
- 设置系统时间
-
命令
- date
-
功能
-
显示时间
# 普通显示 > date > date +%c # 格式化显示 # 具体的格式,可以在help中查看 > date +<format>
-
设置时间
# 设置时间 > date -s "11:11:11" # 设置日期 > date -s "2017-11-11" # 设置时间日期 > date -s "2017-11-11 11:11:11"
-
-
4. hwclock
1. linux时钟
-
硬件时钟
- 记录在主板上
- bios使用
-
系统时钟
- linux内核的时钟
- 操作系统以及各个软件,通常使用的就是这个时钟
-
两个时钟的关系
- 启动时,系统时钟是从硬件时钟来的
- 启动过后,就各玩各的了
2. 相关命令
- 设置硬件时间
-
命令
- hwclock
-
功能
-
查看硬件时间
> hwclock > hwclock -r > hwclock --show
-
直接设置硬件时间
- 有命令,但是不常用
- 通常是先设置系统时间,再写入硬件时间
-
将硬件时间设置为系统时间
> hwclock -s > hwclock --hctosys
-
将系统时间设置为硬件时间
> hwclock -w > hwclock --systohc
-
-
5. 设置时区
- 概述
- 时区概念就不说了
- centos7的时区工具
- timedatectl
-
概述
- 时间工具
- 我们用它来设置时区
-
命令
# 查看时间信息 > timedatectl # 查看系统内支持时区 > timedatectl list-timezones # 设置时区为上海 > timedatectl set-timezone Asia/Shanghai # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间 > timedatectl set-local-rtc 1
-
- 问题: 在 windows 下的 centos 虚拟机中, 时间会比真实的时间, 要快 8 个小时
-
场景
- 宿主机
- win10
- 虚拟化软件
- virtualbox
- 虚拟机
- centos7
- 虚拟机时区设置
- Asia/shanghai
- 宿主机
-
问题
- centos 会把 bios 的时间, 当作是 utc, 也就是 +0 的时区
- 我们如果把时区设置为 Asia/shanghai, 也就是 +8, 则会把 bios 时间再加一次8
- 但是 windows 系统下的 bios 时间, 已经是 +8 区的时间了
- 所以 centos 里的时间, 就出现了偏差
-
解决
- 方案1
- 定时使用 ntpdate 命令, 从时间服务器里, 同步时间
- 方案2
-
直接使用 utc 时区, 来代替 会有偏差的 Aisa/shanghai
-
命令
# 设置时区为 UTC > timedatectl set-timezone UTC # 将系统时间, 写入虚拟硬件 > hwclock -w
-
- 方案3
- 修改 virtualbox 配置, 使其可以正确区别 utc 和 cts 时间
- 方案1
-
ps
-
pool.ntp.org
- 这个 url 后面, 其实是个 地址池
- 我们其实可以指定自己的服务器
- 这个在 内网环境, 特别有用
-
同步的频率
- 可以通过人为控制
- 也可以通过 cron 组件, 来进行定时操作
-
ntp 服务器
- 这个东西, 其实不难搭建
- 有兴趣的话, 可以自己搭建一个 ntp 服务器
- 这个东西, 其实不难搭建
-
timedatectl
- 这个东西, 还是有点迷茫
- 有空还是要 了解一下