时间管理
概述
参考:
Time 管理
实现 NTP 协议的工具
ntpd # 在 centos8 中已不再支持,推荐使用新工具 Chrony 来实现 NTP 协议
Chrony # Chrony
date - 打印或设置系统日期和时间
Syntax(语法)
date [OPTIONS]… [+FORMAT]
可以通过 FORMAT 设置显示时间的格式
OPTIONS
- -s # 从给定的字符串中设定时间。i.e. 设置时间
- -d # 从给定的字符串中显示时间,而不是显示现在的时间。常用于判断给定的数字是否符合时间日期的格式 e.g. date -d 9999 +%H%M 不合法,date -d 1011 +%H%M 合法
FORMAT:
%F
年月日(年-月-日)%Y
年%m
月%d
日%H
小时%M
分钟%S
秒%s
# 从 1970-01-01 00:00:00 UTC 时间开始经过的秒。i.e. 时间戳
EXAMPLE
- date -s 2008/05/06 #
- date -s 18:40:00
- date +%H:%M # 显示当前小时与分钟
- date -d 1011 +%H%M # 显示给定的小时与分钟
- date +%x –> 10/21/2009 #
- date +%m/%d/%Y # 10/21/2009
- 2009-10-21 15:18:17
- date “+%Y-%m-%d %H:%M:%S” #
- 2021-12-20_15:41
date +%F_%H:%M
timedatectl - 控制系统时间和日期
Syntax(语法)
timedatectl [OPTIONS] [COMMAND]
若不加任何子命令和选项,则显示日期与时间相关信息
COMMAND:
- status # 显示当前时间设定。(默认 COMMAND)
- set-time TIME # 设置系统时间。
- 这也将相应地更新 RTC 时间。时间可以以 “2012-10-30 18:17:16” 格式指定。
- set-timezone ZONE # 设置系统的时区
- list-timezones Show known time zones
- set-local-rtc <true|false> # Control whether RTC is in local time
- set-ntp <true|false> # 控制是否启用 NTP。
EXAMPLE
- timedatectl set-time “2020-11-5 18:17:16” # 将系统时间设置为 2020 年 11 月 5 日 18 点 17 分 16 秒
hwclock [-rw] # 查看硬件时间(BIOS 的)
OPTIONS
- -r # 查看现有 BIOS 时间,默认为-r 参数
- -w # 将现在的 linux 系统时间写入 BIOS 中
当我们进行完 Linux 时间的校时后,还需要以 hwclock -w 来更新 BIOS 的时间,因为每次开机的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据。
Linux 校时
调整 linux 系统时间和时区与 Internet 时间同步
一、修改时区:
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改为中国的东八区
clock -w
三、实现 Internet 时间同步(这里可以忽略上面两步)
方法 1. 开机的时候自动网络校时:
/usr/sbin/ntpdate -u 192.168.0.2 192.168.0.3 192.168.0.4; /sbin/hwclock -w
方法 2. 设定计划任务
crontab 格式如下:
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# \* \* \* \* \* command to be executed
设定 crontab 计划任务也有两种方式:
1、写在/etc/crontab 里
代码:
00 11 * * * root ntpdate 210.72.145.44
每天 11 点与中国国家授时中心同步时间
每天 11 点与中国国家授时中心同步时间
当然前提是
apt-get install ntpdate
代码也可是
00 11 * * * root ntpdate us.pool.ntp.org
2、使用命令 crontab -e
crontab -e
10 5 * * * root ntpdate us.pool.ntp.org;hwclock -w
这样每天 5:10 自动进行网络校时,并同时更新 BIOS 的时间
################################
同步网络时间:输入 ntpdate time.nist.gov 同步网络时间
[root@localhost ~]# ntpdate time.nist.gov
12 Oct 17:25:01 ntpdate[2784]: step time server 132.163.4.103 offset 1147751.472254 sec
## 出现以上信息说明同步成功 ##
注:如提示命令不存在,直接输入:yum install ntp -y 安装 ntp 软件包
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.