date命令修改linux时间为什么没生效
时间: 2023-08-10 07:04:40 浏览: 676
如果使用 date
命令修改 Linux 系统时间没有生效,可能有以下原因:
-
缺少管理员权限:修改系统时间需要管理员权限,如果你不是以 root 用户身份登录或者使用
sudo
命令获取管理员权限,可能会导致修改失败。 -
时间同步服务:Linux 系统通常会启用时间同步服务,例如 NTP (Network Time Protocol) 服务,如果这些服务正在运行,它们可能会在短时间内重新设置系统时间。你可以暂时停止这些服务来修改系统时间,例如:
sudo systemctl stop ntp
-
时区问题:如果系统时区设置不正确,可能会导致修改后的时间与预期的时间不同。你可以使用
timedatectl
命令来查看和修改系统时区,例如:sudo timedatectl set-timezone Asia/Shanghai
这个命令将系统时区设置为上海时间。
-
BIOS 时间:如果系统的 BIOS 时间不正确,可能会导致修改后的系统时间与预期的时间不同。你可以进入系统 BIOS 设置界面,手动设置正确的时间。
如果你已经检查了以上原因,仍然无法修改系统时间,可能需要进一步排查系统日志或者尝试重新启动系统。
相关问题
linux如何使用date修改时间
在 Linux 系统中,可以使用 date
命令来修改系统时间。以下是使用 date
命令修改系统时间的步骤:
-
以 root 用户身份登录系统或使用
sudo
命令获取管理员权限。 -
执行
date
命令,查看当前系统时间,例如:date
-
执行
date -s
命令,设置新的系统时间。例如,将系统时间设置为 2022 年 4 月 22 日 10 点 30 分 00 秒,可以执行以下命令:date -s "2022-04-22 10:30:00"
注意,时间格式必须是 "YYYY-MM-DD HH:MM:SS" 的形式,其中 "YYYY" 表示年份,"MM" 表示月份,"DD" 表示日期,"HH" 表示小时,"MM" 表示分钟,"SS" 表示秒数。
-
再次执行
date
命令,查看修改后的系统时间是否生效,例如:date
如果修改成功,输出的时间应该是新设置的时间。如果没有生效,可能需要检查系统时间同步服务是否启用或者重新启动系统。
linux date修改时区
Linux系统中可以通过修改时区环境变量TZ来修改时区。具体步骤如下:
- 查看当前时区是否正确:使用命令date查看当前时间是否正确,使用命令echo $TZ查看当前的时区是否是需要修改的时区。
- 获取时区环境变量TZ的值:使用命令echo $TZ获取当前时区环境变量TZ的值。
- 配置环境变量TZ的值:使用命令export TZ=需要修改的时区来修改时区环境变量TZ的值,例如export TZ=Asia/Shanghai。
- 重新加载配置并检验是否生效:使用命令source /etc/profile重新加载配置文件并检验时区是否已经修改成功。
需要注意的是,修改时区环境变量TZ只会影响当前用户的时区设置,如果需要修改系统的默认时区,需要修改/etc/localtime文件或者/etc/timezone文件。同时,如果使用了Docker容器,也需要在容器内部进行时区的设置。
2.设置时间和日期
例如:将系统日期设定成2009年11月3日的命令
命令 : “date -s 11/03/2009”
将系统时间设定成下午5点55分55秒的命令
命令 : “date -s 17:55:55”
date
显示当前时间 Fri Aug 3 14:15:16 CST 2007
date -s
按字符串方式修改时间
可以只修改日期,不修改时间,输入: date -s 2007-08-03
只修改时间,输入:date -s 14:15:00
同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:date -s “2007-08-03 14:15:00”
修改完后,需要的话可以输入:clock -w
把系统时间写入CMOS
3. 将当前时间和日期写入BIOS,避免重启后失效
命令 : hwclock -w
linux 系统时间隔一段时间,总会被还原问题
最近,在Linux使用过程中,系统时间与实际时间间隔8小时,并且修改过后隔一段时间就会被还原,且时间间隔为1分钟左右。为解决该问题尝试过多种修改时间的方法,包括设置系统时间和硬件时间,最后发现utc时间不正确,和实际时间相同(本应要提早8小时),于是采用本地时间更新成 UTC 时间解决了该问题(没有找到原因,只解决了问题)。
Linux服务器执行时发现系统时间不对,所以查找资料,首先用到了 date 来修改系统日期
1,使用 tzselect 来设置时区 选了 Asia/China/Beijing,无效;
2,修改Linux时间:date -s 时间
这种方式只是临时修改系统时间,当系统重新启动的时候就会还原。
3,而后使用 timedatectl 指令来修改时间
timedatectl set-time '2019-03-16 10:10:00'
4,此时发现时间仍旧会被还原,而且是过一分钟左右,系统时间会自动更新,相隔8小时,
猜测系统时间读取的是硬件时间,于是使用 hwclock 设置硬件时间
hwclock --set --date '2019-03-16 10:10:00'
这是修改硬件的时间 也就是永久性修改Linux的时间
hwclock --show 查看硬件的时间
hwclock --set --date '2019-03-16 10:10:00' 设置硬件时间为19年3月16日10点10分00秒
hwclock --hctosys 设置系统时间和硬件时间同步
clock -w 保存时钟
5,经过以上操作,发现LINUX系统时间仍然会定时更新,
猜测:觉得是有地方设置了定时同步,只是同步时间源不对。
尝试方法:根据网上资料,尝试网络时间同步的方式,使用 timedatectl 开启 ntp 同步,timedatectl set-ntp 1
#timedatectl
......
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
6,此处与网友贴出的信息有所不一致, ntp enabled 虽然开启,,但是 synchronized 仍然关闭(使用 ntp update [serverip]仍无效),就算设置了 RTC in local TZ 开启也没有效果,没有找到出现此问题的原因所在
Warning: Ignoring the TZ variable. Reading the system's time zone setting only.
Local time: 五 2019-03-29 09:05:38 UTC
Universal time: 五 2019-03-29 09:05:38 UTC
RTC time: 五 2019-03-29 00:57:06
Time zone: Universal (UTC, +0000)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
猜测:看到UTC的时间一直不正确,猜想是由于UTC时间导致的
解决方法:将 localtime时间重置,并将utc时间设置为localtime时间
rm /etc/localtime
#Step 4:从/usr/share/zoneinfo/中创建软连接以替换当前的时区信息,直接选择Universal:
ln -s /usr/share/zoneinfo/Universal /etc/localtime
时钟同步导致时间默认恢复成同步主机时间
根据报错发现vmtoolsd影响服务器时间同步
1、systemctl stop chronyd.service (停止该服务)
2、systemctl start chronyd.service(开启时钟同步)
3、systemctl disable chronyd.service(关闭服务开机自启)
4、systemctl stop ntpd.service (停止该服务)
5、date -R 或 timedatectl (再次查看时间--正常,没有出现被还原情况
禁用系统时间同步
sudo timedatectl set-ntp 0