扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
修改系统时间。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了苏尼特右免费建站欢迎大家使用!
linux系统时钟有两个,一个是硬件时钟,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时钟,是linux系统Kernel时间。当Linux启动时,系统Kernel会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。有时我们会发现系统时钟和硬件时钟不一致,因此需要执行时间同步,下面就分享一下时间设置及时钟同步的命令使用方法。
date命令将日期设置为2014年6月18日
---- date -s 06/18/14
将时间设置为14点20分50秒
---- date -s 14:20:50
将时间设置为2014年6月18日14点16分30秒(MMDDhhmmYYYY.ss)
----date 0618141614.30
请点击输入图片描述
hwclock/clock 命令查看、设置硬件时间
查看系统硬件时钟
hwclock --show 或者
clock --show
设置硬件时间
hwclock --set --date="06/18/14 14:55" (月/日/年时:分:秒)或者# clock --set --date="06/18/14 14:55" (月/日/年时:分:秒)
同步系统及硬件时钟。
下图中可以看到硬件和系统时钟相差半小时。可以使用hwclock或者clock进行同步,
硬件时钟与系统时钟同步:
# hwclock --hctosys 或者 # clock --hctosys hc代表硬件时间,sys代表系统时间,即用硬件时钟同步系统时钟
系统时钟和硬件时钟同步:
# hwclock --systohc或者# clock --systohc 即用系统时钟同步硬件时钟
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
查看时区
cat /etc/sysconfig/clock
设置时区
tzselect
timeconfig
cat /etc/sysconfig/clock ZONE=”Asia/Shanghai” — /usr/share/zoneinfo 下面的文件。 UTC=false — 硬件时钟是否为 UTC 或者说 GMT 时钟。 ARC=false — 如果是在 Alpha 机器上,则设置为 true 。
把硬件时钟设置为 UTC 的好处就是他能自动设置夏时制,缺点是,在安装有多重操作系统启动的机器上,在另外的操作 系统上时钟会错误。
Linux 的时钟设置文件为:/etc/localtime ,实际上这个文件是 /usr/share/zoneinfo 目录下对应文件的符号连接。 假设我们所处的地区位于上海,那么只要运行以下的命令就可以设置时区了。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Linux 启动时,其中的一个脚本(/etc/rc.d/rc.sysinit)会运行 /sbin/hwclock 程序,把当前的硬件时钟复制为系统 时间。hwclock 假定硬件时钟已经设置为本地时钟,除非带有 –utc 参数。脚本文件会读取 /etc/sysconfig/clock 文 件的设置,因此我们不需要修改脚本,直接修改这个配置文件就可以了,根据需要把其中的 UTC 行,设置为 true 或 者 false。
设置硬件时钟时,首先使用 date 命令(“date MMDDhhmmYYYY.ss”) 设置好系统时钟,然后使用 “/sbin/hwclock –systohc” 把硬件时钟设置为和当前系统时间一致。
如果你在某些应用下面的时间是错误的,那么你在运行 Red Hat Linux 5.0 或 5.1,解决的办法是建立 /usr/lib/zoneinfo 到 /usr/share/zoneinfo 的符号连接:
ln -s /usr/share/zoneinfo /usr/lib/zoneinfo
小结:时钟设置的问题本身比较简单,但是它涉及到几个基本的配置文件:
/etc/rc.d/rc.sysinit /etc/sysconfig/clock /etc/localtime /usr/share/zoneinfo时区的配置文件是/etc/sysconfig/clock。用tzselect命令就可以修改这个配置文件,根据命令的提示进行修改就好了。 但是在实际工作中,发现这种方式是不能够使得服务器上的时间设置马上生效的,而且使用ntpdate去同步时间服务器也不能够更改时间。即使你使用了date命令手工设置了时间的话,如果使用ntpdate去进行时间同步的话,时间又会被改动到原来的错误时区的时间。而生产的机器往往是非常重要的,不能够进行重启等操作。 在网上找了几种方法试了下,发现如果要修改时区并且马上生效,可以更换/etc/localtime 文件来实现。比如我的时区是中国上海,那么就可以使用如下的命令来使得时区的更改生效。 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 然后最好使用下面的命令将更改写入bios。
inux修改时间命令是date-s+时分秒。
修改linux系统时间。root使用date指令:date -s
1、只修改日期,不修改时间,输入:date -s 2021-04-02。
2、只修改时间,输入:date -s 12:00:00。
3、同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:date -s “2021-04-02 10:25:00”
4、修改完后,记得输入:clock -w。把系统时间写入CMOS修改时区不重启。在root下。
复制相应的时区文件,替换系统时区文件:
cp /usr/share/zoneinfo/主时区/次时区 /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、文件复制命令—cp cp [参数] [源地址] [目的地址]主要参数描述如下:-a :此参数和同时指定“-dpR”参数相同 -d :在复制有符号连接的文件时,保留原始的连接。 -f :强行复制文件,不管要复制的文件是否已经存在于目标目录。 -I :覆盖现有文件之前询问用户。
linux查看与修改时区、时间的命令1、查看、修改linux时区与时间一、linux时区的查看与修改1,查看当前时区date
-R2,修改设置时区方法1:tzselect方法2:仅限于RedHat
linux
和
CentOStimeconfig方法3:适用于Debiandpkg-reconfigure
tzdata3,复制相应的时区文件,替换系统时区文件;或者创建链接文件cp
/usr/share/zoneinfo/$主时区/$次时区
/etc/localtime在中国可以使用:cp
/usr/share/zoneinfo/Asia/Shanghai
/etc/localtime二、linux时间的查看与修改1、查看时间和日期date2、设置时间和日期将系统日期设定成1996年6月10日的命令date
-s
06/22/96将系统时间设定成下午1点52分0秒的命令date
-s
13:52:003.
将当前时间和日期写入BIOS,避免重启后失效hwclock
-w三、定时同步时间*
*
*
*
*
/usr/sbin/ntpdate
210.72.145.44
/dev/null
21linux中用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。查看linux系统时间:date修改linux系统时间:date
-s
(后面跟时间)查看linux硬件时间:Java代码
hwclock
#或
clock
#或
hwclock
–show
#或
clock
–show
修改linux硬件时间:C代码
hwclock
–set
–date
#或
clock
–set
–date
让系统时间与硬件时钟同步,用:C代码
hwclock
–hctosys
#或
clock
–hctosys
相反地,让硬件时钟与系统时间同步:C代码
hwclock
–systohc
#或
clock
–systohc
让系统时间每隔十分钟去同步一下硬件时间。C代码
[hqw@localhost
root]$
vi
/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
#
run-parts
01
*
*
*
*
root
run-parts
/etc/cron.hourly
02
4
*
*
*
root
run-parts
/etc/cron.daily
22
4
*
*
root
run-parts
/etc/cron.weekly
42
4
1
*
*
root
run-parts
/etc/cron.monthly
*/10
*
*
*
*
root
hwclock
--hctosys
#加入此行,每隔10分钟执行一次hwclock
--hctosys
1 TIMEDATECTL命令
该命令是作为systemd系统和服务管理器的一部分分发的工具,可以用它来查看和更改系统时钟的配置,包括更改当前的日期和时间、设置时区以及可以激活与远端服务器系统时钟的自动同步,是红帽企业版 7 版本新增的命令。
1.1 展示当前日期和时间
可以使用timedatectl命令来展示当前日期和时间,并且有系统和硬件时钟的配置的详细信息。
[root@strong ~]# timedatectl
Local time: Sat 2019-09-21 15:02:27 CST
Universal time: Sat 2019-09-21 07:02:27 UTC
RTC time: Sat 2019-09-21 07:02:27
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
1.2 更改当前时间
更改当前时间,命令格式为:timedatectl set-time HH:MI:SS。
该命令同时更改系统时间和硬件时钟,执行结果与使用命令date --set 和hwclock --systohc的效果相同。
[root@strong ~]# timedatectl set-time 20:00:00
[root@strong ~]# timedatectl
Local time: Sat 2019-09-21 20:00:04 CST
Universal time: Sat 2019-09-21 12:00:04 UTC
RTC time: Sat 2019-09-21 12:00:05
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
[root@strong ~]# timedatectl set-time 2019-09-15
[root@strong ~]# timedatectl
Local time: Sun 2019-09-15 00:00:03 CST
Universal time: Sat 2019-09-14 16:00:03 UTC
RTC time: Sat 2019-09-14 16:00:03
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
仅仅更改日期,时间会变为00:00:00,故更改日期时需把对应的时间加上,例如:timedatectl set-time "2019-09-21 15:16:00"。
1.4 更改时区
1.4.1 列出所有时区
[root@strong ~]# timedatectl list-timezones
1.4.2 更改时区
[root@strong ~]# timedatectl set-timezone Asia/Shanghai
2 DATE命令
该命令在所有Linux系统都可用,用于设置和查看当前日期和时间,常用于脚本中以格式化的形式用于展示系统时间的详细信息。
2.1 展示当前日期和时间
1)不带任何格式展示
[root@strong ~]# date
Sat Sep 21 15:24:57 CST 2019
默认展示的是本地时间,以UTC的方式展示,需使用date --utc或date -u。
[root@strong ~]# date --utc
Sat Sep 21 07:25:50 UTC 2019
2)格式化展示
客制化日期和时间的展示格式,使用命令:date +"格式"。
常用的格式为:
控制格式
描述
%H
以HH格式展示小时;
%M
以MM格式展示分钟;
%S
以SS格式展示秒;
%d
以DD格式展示天数;
%m
以MM格式展示月;
%Y
以YYYY格式展示年;
%Z
时区;
%F
以YYYY-MM-DD格式展示日期,和%Y-%m-%d等价;
%T
以HH:MM:SS格式展示时间,和%H:%M:%S等价;
[root@strong ~]# date
Sat Sep 21 15:37:18 CST 2019
[root@strong ~]# date +"%Y-%m-%d %H:%M:%S"
2019-09-21 15:38:00
2.2 更改当前时间
更改当前时间,命令格式为:date --set HH:MM:SS。
[root@strong ~]# date --set 15:40:20
Sat Sep 21 15:40:20 CST 2019
2.3 更改当前日期
更改当前日期,命令格式为:date --set YYYY-MM-DD。
[root@strong ~]# date --set 2019-09-25
Wed Sep 25 00:00:00 CST 2019
仅仅更改日期,时间会变为00:00:00,故更改日期时需把对应的时间加上,例如:
[root@strong ~]# date --set "2019-09-21 15:42:35"
Sat Sep 21 15:42:35 CST 2019。
3 CLOCK命令
该命令是用于访问硬件时钟的工具,也称为Real Time Clock(RTC),对应的设置保存在/etc/adjtime文件中。硬件时钟独立于操作系统,即使系统关闭,它仍然工作,用于从硬件时钟展示时间。
3.1 展示当前日期和时间
[root@strong ~]# hwclock
Sat 21 Sep 2019 03:51:24 PM CST -0.368709 seconds
3.2 设置日期和时间
设置日期和时间的命令为:hwclock --set --date "dd mmm yyyy HH:MM"
[root@strong ~]# hwclock --set --date "21 Sep 2019 16:02:25"
[root@strong ~]# hwclock
Sat 21 Sep 2019 04:02:35 PM CST -0.342764 seconds
3.3 同步日期和时间
可以使用hwclock命令在硬件时钟和当前系统时间直接互相同步。
3.3.1 系统时间同步到硬件时钟
[root@strong ~]# hwclock --systohc
3.3.2 硬件时钟同步到系统时间
[root@strong ~]# hwclock --hctosys
对于许多与系统相关的任务和进程,使用正确的时区是必不可少的。例如,cron守护进程使用系统的时区执行cron作业,日志文件中的时间戳基于同一系统的时区。
环境
Centos 8
检查现在的时区
timedatectl是一个 命令 行实用程序,允许您查看和更改系统的时间和日期。
[root@localhost ~]# timedatectl
Local time: Tue 2020-03-31 16:35:23 CST
Universal time: Tue 2020-03-31 08:35:23 UTC
RTC time: Tue 2020-03-31 08:35:23
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
更改时区
在更改时区之前,您需要找出要使用的时区名称。要列出所有可用时区,请使用下面的 命令 :
[root@localhost ~]# timedatectl list-timezones
…
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
…
然后使用set-timezone选项更改时区,比如更改为Europe/Berlin:
[root@localhost ~]# timedatectl set-timezone Europe/Berlin
使用创建链接的方式更改时区
如果运行的是旧版本的Centos,比如Centos6之前的版本,并且系统上不存在timedatectl命令,则可以通过将/etc/localtime符号链接到/usr/share/zoneinfo目录中的时区文件来更改时区。
查看一下/usr/share/zoninfo下面的时区文件,
[root@localhost ~]# ls /usr/share/zoneinfo/
[root@localhost ~]# ls /usr/share/zoneinfo/Asia/
现在替换时区文件。
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@localhost ~]# date
Tue Mar 31 16:53:59 CST 2020
可以看到已经切换到了CST中国标准时间
总结
在本文中,使用了两种方式修改时区。一种是使用timedatectl,另一种方式使用创建链接的方式。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流