Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

业无高卑志当坚,男儿有求安得闲?这篇文章主要讲述Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#相关的知识,希望能为你提供帮助。
【Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#】今天stat文件的时候发现时间是错的,我很懵逼,我想改一下子,结果找了好多都不对。乱七八糟的只好自己整理一下。
修正Linux时间只需三步

  1. ntpdate ntp1.aliyun.com
    对准到阿里云校时服务器
  2. hwclock -w
    将系统时间同步到硬件时间
  3. vim /etc/localtime
    将UTC改为==CST==或者==UTC+8==即可。
    Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

    文章图片
修改之后时间显示就是正常的了。
Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片

< font size=5> 如果只想改时间看到这就可以退出去了,如果想知道每一步的原理就继续往下看。< font>
1 时间linux系统有两个时钟:
  • 硬件时钟,即Bios时间;
  • 系统时钟,是linux系统内核时间
在linux系统上程序运行时读取的时间都是系统内核时间。
硬件时钟是存储在CMOS里的时钟,关机后该时钟依然运行,主板的电池为它供电。每次Linux启动,系统内核会先去读取硬件时钟的设置,之后独立运行。< font color =green> 当调整系统时钟或与internet同步后< /font> ,不会改变硬件时钟,但是下次启动又会变成硬件时钟的时间。
综上所述,所以想要永久修改linux时间并使得时间准确,就需要永久修改硬件时间,不然每次重新启动linux时,系统时间又变回之前的硬件时间。
记住上边绿色的话,待会儿会用到。
1.1 查看系统时间
  1. date
    Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

    文章图片

    如上图,使用date会显示当前时间。
    < font size = 3 face=仿宋> 因为我还原了一下,所以时间停留在我上次备份系统的时间。< /font>
  2. timedatectl
    我这里就不演示了,用法自己去查(或者哪天我有空了再补充)。
    因为我用的CentOS6,还不支持 timedatectl,详细原因看上角标的附录图↗[^1][^2]。
1.2 查看硬件时间
  • clock
  • hwclock
上边两条语句都可以读取硬件时间。
Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片

1.3 修改系统时间
修改系统时间就是上边绿字说的两个:< font color =green> 当调整系统时钟或与internet同步后< /font> 。
  1. 手动设定:
    date -s "yyyymmdd hh:mm:ss"
    比如使用 date -s "20221201 19:20:00",这里我将时间设置为2022年了。下图设置成功。
    Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

    文章图片

    但是这样会存在一个问题就是秒数无法精确。所以可以使用自动对齐到网络时间。
  2. 自动对齐到网络时间:
    ntpdate ntp1.aliyun.com
    这里是直接将时间对齐到阿里云校时服务器(注意这里用的是UTC时间,和中国差八小时,看2.3节将其修改为中国时间)。
    Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

    文章图片

    1.4 修改硬件时间
    为了保证下次开机时候不会重置为错误的时间,所以要将硬件时间也进行修正。
  • hwclock --set --date="yyyymmdd hh:mm:ss"
  • clock --set --date="yyyymmdd hh:mm:ss"
上边两句作用一样,用哪个都可以。
Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片

那你肯定想,这个如何对齐到网络时间呢。
硬件时间没有直接的类似于utpdate之类的操作。但是你可以将系统时间写入硬件,就用到了1.5了。
1.5 同步系统时间和硬件时间
如果你的系统时间是准确的,硬件时间是不准确的,那你可以使用:
  • hwclock --systohc
  • hwclock -w
两句作用是一样的,都是将系统时间同步到硬件时间。
Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片

Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片

2 时区 2.1 查看时区
cat /etc/sysconfig/clock
下图可以看出我设置的是北京时间。
Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片

2.2 修改时区
tzselect
使用tzselect会跳出选项,按照选项输入数字即可。
  • 输入tzselect输入选择地区
    Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

    文章图片
  • 选择国家,我这选了中国
    Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

    文章图片
  • 选择使用的时间,我这里选的北京时间(也就是上海时间)
    Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

    文章图片

  • 他会让你再确认一下信息,选好之后确认即可。
    Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

    文章图片
2.3 修改UTC CST时间
UTC是世界标准时间,CST是中国标准时间。
现在你可能会遇到一个问题,对齐到阿里云时间之后是UTC时间,明明时区设置的是中国,为什么还是显示UTC时间呢?
说实话,你时间对不对和你设置的时区毫无关系……
现在就对其进行修改。
vim /etc/localtime
修改localtime文件,将UTC改为==CST==或者==UTC+8==即可。
Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片

修改之后时间显示就是正常的了。
Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片

[^1]:图中大致意思是CentOS7才开始支持timdedatectl < br>
Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片

[^2]:我尝试安装了一下,也是无法安装状态。 < br>
Linux修改时间 修改时区 | Linux时间校准 #yyds干货盘点#

文章图片


    推荐阅读