1、Linux时间介绍:
Linux 时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称 RTC)时钟。系统时钟
是指当前 Linux Kernel 中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在
BIOS 中进行设置。当 Linux 启动时,硬件时钟会去读取系统时钟的 设置,然后系统时钟就会独立
于硬件运作。
Linux 中的所有命令(包括函数)都是采用的系统时钟设置。在 Linux 中,用于时钟查看和
设置的命令主要有 date、hwclock 和 clock。其中,clock 和 hwclock 用法相近,只用一个就行,只不
过 clock 命令除了支持 x86 硬 件体系外,还支持 Alpha 硬件体系。
【文章福利】 小编在群文件上传了一些个人觉得比较好得学习书籍、视频资料,有需要的可以进群【977878001】 领取!!!额外赠送一份价值699的内核资料包(含视频教程、电子书、实战项目及代码)
内核资料直通车: Linux内核源码技术学习路线+视频教程代码资料
学习直通车(腾讯课堂免费报名): Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈
2、Linux时间设置命令
2.1、date:
语法格式:date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help]
[--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说明:可用来设置系统日期与时间。只有管理员才有设置日期与时间的权限,一般用户只能用
date 命令显示时间。若不加任何参数,data 会显示目前的日期与时间。
例 1:显示当前系统时间
[root@Test2 ~]# date
2010 年 06 月 17 日 星期四 00:00:04 CST
例 2:设置日期和时间为 2010 年 6 月 18 号 12:00
[root@Test2 ~]# date -s "20100618 12:00:00"
2010 年 06 月 18 日 星期五 12:00:00 CST
例 3:设置日期为 2010 年年 6 月 18 号
[root@Test2 ~]# date -s 20100618
2010 年 06 月 18 日 星期五 00:00:00 CST
例 4:设置时间为 12:00:00 [root@Test2 ~]# date 12:00:00
date: invalid date “12:00:00”
例 5:显示时区
[root@Test2 ~]# date -R
Thu, 17 Jun 2010 00:01:36 +0800
或者:
[root@Test2 ~]# cat /etc/sysconfig/clock
The ZONE parameter is only evaluated by system-config-date.
The timezone of the system is defined by the contents of /etc/localtime.
ZONE="Asia/Shanghai"
UTC=true
ARC=false
2.2、hwclock/clock
语法格式:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
[--utc][--version][--set --date=<日期与时间>]
参数:
--adjust hwclock 每次更改硬件时钟时,都会记录在/etc/adjtime 文件中。使用--adjust 参数,可使 hwclock
根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
--debug 显示 hwclock 执行时详细的信息。
--directisa hwclock 预设从/dev/rtc 设备来存取硬件时钟。若无法存取时,可用此参数直接以 I/O 指令
来存取硬件时钟。
--hctosys 将系统时钟调整为与目前的硬件时钟一致。
--set --date=<日期与时间> 设定硬件时钟。
--show 显示硬件时钟的时间与日期。
--systohc 将硬件时钟调整为与目前的系统时钟一致。
--test 仅测试程序,而不会实际更改硬件时钟。
--utc 若要使用格林威治时间,请加入此参数,hwclock 会执行转换的工作。
--version 显示版本信息。
例 1:查看硬件时间
hwclock --show
或者
clock --show
例 2:设置硬件时间
hwclock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)
或者
clock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)
例 3:硬件时间和系统时间的同步
按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需
要用 hwclock 或 clock 命令实现同步。
硬件时钟与系统时钟同步:
hwclock --hctosys(hc 代表硬件时间,sys 代表系统时间)
或者
clock –hctosys
例 4:系统时钟和硬件时钟同步 :# hwclock --systohc
或者
clock –systohc
例 5:强制将系统时间写入 CMOS,使之永久生效,避免系统重启后恢复成原时间
clock –w
或者
hwclock -w
2.3、时区的设置
tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
- Africa
- Americas
- Antarctica
- Arctic Ocean
- Asia
- Atlantic Ocean
- Australia
- Europe
- Indian Ocean
- Pacific Ocean
- none - I want to specify the time zone using the Posix TZ format.
? 输入 5,亚洲
Please select a country.
- Afghanistan 18) Israel 35) Palestine
- Armenia 19) Japan 36) Philippines
- Azerbaijan 20) Jordan 37) Qatar
- Bahrain 21) Kazakhstan 38) Russia
- Bangladesh 22) Korea (North) 39) Saudi Arabia
- Bhutan 23) Korea (South) 40) Singapore
- Brunei 24) Kuwait 41) Sri Lanka
- Cambodia 25) Kyrgyzstan 42) Syria
- China 26) Laos 43) Taiwan
- Cyprus 27) Lebanon 44) Tajikistan
- East Timor 28) Macau 45) Thailand
- Georgia 29) Malaysia 46) Turkmenistan
- Hong Kong 30) Mongolia 47) United Arab Emirates
- India 31) Myanmar (Burma) 48) Uzbekistan
- Indonesia 32) Nepal 49) Vietnam
- Iran 33) Oman 50) Yemen
- Iraq 34) Pakistan
? 输入 9,中国
Please select one of the following time zone regions.
- east China - Beijing, Guangdong, Shanghai, etc.2) Heilongjiang
- central China - Gansu, Guizhou, Sichuan, Yunnan, etc.
- Tibet & most of Xinjiang Uyghur
- southwest Xinjiang Uyghur
? 输入 1,北京时间
The following information has been given:
China
east China - Beijing, Guangdong, Shanghai, etc.
Therefore TZ='Asia/Shanghai' will be used.
Local time is now: Fri Jul 7 10:32:18 CST 2006.
Universal Time is now: Fri Jul 7 02:32:18 UTC 2006.
Is the above information OK?
- Yes
- No
? 输入 1,确认
如果不用 tzselect 命令,可以修改文件变更时区。
vi /etc/sysconfig/clock
Z/Shanghai(查/usr/share/zoneinfo 下面的文件)
UTC=false
ARC=false
rm /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
重新启动即可。
2.4、图形界面设置时区命令timeconfig
2.5、时间同步
例 1:同步时间
ntpdate 210.72.145.44
(210.72.145.44 是中国国家授时中心的官方服务器)
例 2:定时同步时间
crontab –e 添加脚本例子如下:
/20 * /usr/sbin/ntpdate 210.72.145.44 //每 20 分钟执行一次
30 5 * /usr/sbin/ntpdate 210.72.145.44 //每天早晨 5 点半执行
※ 前面五个*号代表五个数字,数字的取值范围和含义如下:分钟(0-59) 小時(0-23) 日期(1-31)
月份(1-12) 星期(0-6)//0 代表星期天设定完毕后,可使用# crontab –l 查看上面的设定。
原文作者:极致Linux内核
原文地址:https://zhuanlan.zhihu.com/p/576802495(版权归原文作者所有,侵权联系删除)