今天stat文件的时候发现时间是错的,我很懵逼,我想改一下子,结果找了好多都不对。乱七八糟的只好自己整理一下。

修正Linux时间只需三步

  1. ntpdate ntp1.aliyun.com
    对准到阿里云校时服务器
  2. hwclock -w
    将系统时间同步到硬件时间
  3. vim /etc/localtime
    将UTC改为CST或者UTC+8即可。
    在这里插入图片描述

修改之后时间显示就是正常的了。
在这里插入图片描述
如果只想改时间看到这就可以退出去了,如果想知道每一步的原理就继续往下看。




1 时间

linux系统有两个时钟:

  • 硬件时钟,即BIOS时间;
  • 系统时钟,是linux系统内核时间

硬件时钟是存储在CMOS里的时钟,关机后该时钟依然运行,主板的电池为它供电。每次Linux启动,系统内核会先去读取硬件时钟的设置作为系统时间。

只调整系统时钟,不会改变硬件时钟,下次启动系统时间又会变成硬件时钟的时间。所以想要永久修改linux时间并使得时间准确,就需要永久修改硬件时间。

举个栗子🌰:
在这里插入图片描述

1.1 查看系统时间

  1. date
    在这里插入图片描述
    如上图,使用date会显示当前时间。

    因为我还原了一下,所以时间停留在我上次备份系统的时间。

  2. timedatectl

    我这里就不演示了,用法自己去查(或者哪天我有空了再补充)。

    因为我用的CentOS6,还不支持 timedatectl,详细原因看上角标的附录图↗12

1.2 查看硬件时间

  • clock
  • hwclock

上边两条语句都可以读取硬件时间。
在这里插入图片描述

1.3 修改系统时间

修改系统时间就是上边绿字说的两个:当调整系统时钟或与internet同步后

  1. 手动设定:
    date -s "yyyymmdd hh:mm:ss"

    比如使用 date -s "20221201 19:20:00",这里我将时间设置为2022年了。下图设置成功。
    在这里插入图片描述
    但是这样会存在一个问题就是秒数无法精确。所以可以使用自动对齐到网络时间。

  2. 自动对齐到网络时间:
    ntpdate ntp1.aliyun.com

    这里是直接将时间对齐到阿里云校时服务器(注意这里用的是UTC时间,和中国差八小时,看2.3节将其修改为中国时间)。
    在这里插入图片描述

1.4 修改硬件时间

为了保证下次开机时候不会重置为错误的时间,所以要将硬件时间也进行修正。

  • hwclock --set --date="yyyymmdd hh:mm:ss"
  • clock --set --date="yyyymmdd hh:mm:ss"

上边两句作用一样,用哪个都可以。
在这里插入图片描述
那你肯定想,这个如何对齐到网络时间呢。

硬件时间没有直接的类似于utpdate之类的操作。但是你可以将系统时间写入硬件,就用到了1.5了。

1.5 同步系统时间和硬件时间

如果你的系统时间是准确的,硬件时间是不准确的,那你可以使用:

  • hwclock --systohc
  • hwclock -w

两句作用是一样的,都是将系统时间同步到硬件时间。
在这里插入图片描述
在这里插入图片描述

2 时区

2.1 查看时区

cat /etc/sysconfig/clock

下图可以看出我设置的是北京时间。
在这里插入图片描述

2.2 修改时区

tzselect

使用tzselect会跳出选项,按照选项输入数字即可。

  • 输入tzselect输入选择地区
    在这里插入图片描述

  • 选择国家,我这选了中国
    在这里插入图片描述

  • 选择使用的时间,我这里选的北京时间(也就是上海时间)
    在这里插入图片描述

  • 他会让你再确认一下信息,选好之后确认即可。
    在这里插入图片描述

2.3 修改UTC CST时间

UTC是世界标准时间,CST是中国标准时间。

现在你可能会遇到一个问题,对齐到阿里云时间之后是UTC时间,明明时区设置的是中国,为什么还是显示UTC时间呢?
说实话,你时间对不对和你设置的时区毫无关系……

现在就对其进行修改。

vim /etc/localtime

修改localtime文件,将UTC改为CST或者UTC+8即可。
在这里插入图片描述
修改之后时间显示就是正常的了。
在这里插入图片描述


  1. 图中大致意思是CentOS7才开始支持timdedatectl
    在这里插入图片描述 ↩︎

  2. 我尝试安装了一下,也是无法安装状态。

    在这里插入图片描述 ↩︎

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。