当前位置:首页 > Linux
解决 linux 系统刚修改完时间,立马被还原的问题
来源:靑龍一笑的博客  作者:靑龍一笑  发布时间:2021-11-10 11:08:56  点击量:957  评论:0

    由于某应用系统的注册码过期,打算通过修改系统时间,临时使用该系统。我写了一个脚本,将系统时间修改为 2021 年 6 月 30 日,代码如下:

#!/bin/sh
# 作者:靑龍一笑(C.S.Ricen)
# 功能:调整时间为指定日期

# 指定日期
curDate="2021-06-30"
# 获取当前时间
curTime=`date "+%H:%M:%S"`

# 改变日期为指定日期,保留当前时间不变
hwclock --set --date "$curDate $curTime"
hwclock --hctosys

# 检验当前时间
curTime=`date "+%Y-%m-%d %H:%M:%S"`
echo $curTime

    脚本执行完,发现系统时间立马被还原了。首先想到的是检查是否存在 ntpd 和 chronyd 这两个时间同步的服务,结果并没有。由于 linux 系统是安装在虚拟机里,检查虚拟机设置里的时间同步,发现也没有开启。
    最后,检查 /usr/lib/systemd/system 目录下的服务名,发现了一个名为 systemd-timesyncd.service 的文件。
    查看该服务的状态:

[root@RicenOS softwares]# systemctl status systemd-timesyncd

    发现服务处于运行状态。
    首先,关闭 ntp:

[root@RicenOS softwares]# timedatectl set-ntp false

    重启 systemd-timesyncd 服务:

[root@RicenOS softwares]# systemctl daemon-reload
[root@RicenOS softwares]# systemctl restart systemd-timesyncd

    这一步是为了让关闭 ntp 生效。当然,此时,systemd-timesyncd 服务也可以停了:

[root@RicenOS softwares]# systemctl stop systemd-timesyncd

    取消此服务的开机启动:

[root@RicenOS softwares]# systemctl disable systemd-timesyncd

    重新执行修改时间的脚本:

[root@RicenOS softwares]# ./setTime.sh

    此时,时间不会再被还原了。

版权所有 © 2005-2023 靑龍一笑的博客  Powered by C.S.Ricen
Copyright © 2005-2023 by www.ricensoftwares.com.cn  All Rights Reserved.

欢迎光临本站,这里是靑龍一笑的博客。

因资金匮乏,本站已迁到国外的免费空间,可能导致本站的访问速度较慢,由此给您带来的不便,敬请谅解。

您可以通过下方的“支持本站建设”链接,给本站提供资金支持。

Free Web Hosting