Linux时间变慢解决方法 – Linux时间命令date、hwclock和clock学习

本文分享了作者在解决Linux服务器时间逐渐变慢的问题时的经验。通过对系统时钟和硬件时钟的研究,最终找到了使二者同步的方法,并实现与Windows服务器的时间同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司有两台重要的服务器采用了Linux系统,一台是我们的技术开发单位网新中研技术人员安装的主服务器,另一台是我亲自安装的测试服务器。说真的,自从采用Linux替换掉原先的Windows Server 2003后,网站系统的性能居然有了巨大的提升。本来几十个人同时在线就会崩溃的系统,改成Linux后100多人在线都很流畅。所以前段时间我也一直有在搞Linux,自己笔记本虚拟机里也安装了一个Red Hat Enterprise Linux AS5.4(AS是什么意思?AS就是Advanced Server,高级服务器版),做为我的实验室。所以那段时间通过自学Linux Server我也积累了不少东西。当时由于太忙没有时间,还有就是我的网站没有整合好,所以就没有把自己一些技术上的经历写上来。现在网站改建整合完成,我想把那时积累的一些重要的东西写一下,我都做有笔记的呵呵~~

  后来问题来了,主服务器上的Linux系统时间越来越慢了!!用date -s命令把它调正之后,几十分钟或者几个小时内是看不出变慢的,等过了一两天就会发现它慢了几分钟。这个问题有点头疼,因为我们有台Windows的服务器和这台Linux服务器有数据的交互,实时性要求很强,所以两台服务器时间必须同步!网新那边的经理让我来处理这个问题。

  我调了发现第二天的确会变慢。 Linux接触时间不是很长,想不出什么解决方法,所以我去网上找。找到一个说是要关闭cpuspeed,这个服务会影响系统时间。关闭操作:

# /etc/init.d/cpuspeed stop
# chkconfig --levels 12345 cpuspeed off

  然而实践证明这种方法根本没有用。还有一些解决方法说是去同步网上的时间服务器,有点复杂我也懒得去搞。之后我学习到了Linux时间,才知道Linux分系统时钟和硬件时钟两种。我发现服务器的硬件时钟是正确的,而且没有随着时间的推移而变慢。所以我的想法是让系统时钟去同步硬件时钟,不多说了,以下是我整理的学习笔记。

  在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。

  查看Linux系统时间:
date
  修改Linux系统时间:
date -s (后面跟时间)

  查看Linux硬件时间:
hwclock

clock

hwclock –show

clock –show

  修改Linux硬件时间:
hwclock –set –date

clock –set –date

  让系统时间与硬件时钟同步,用:
hwclock –hctosys

clock –hctosys

  相反地,让硬件时钟与系统时间同步:
hwclock –systohc

clock –systohc

  让系统时间每隔十分钟去同步一下硬件时间。

[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 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
*/10 * * * * root hwclock --hctosys
#我加入了这么一行,表示每隔10分钟执行一次hwclock --hctosys。

  看我的操作如下图:




  最后,我还有一种绝好的方法,可以让Linux和Windows完美时间同步。就是把那个需要同步的Windows服务器做成一个时间服务器,在Linux里设置这台Windows服务器为它的时间服务器。不难的,去网上找一下,有个服务器软件可以把Windows做成时间服务器的。


<think>好的,用户想了解如何在Linux系统中修改时间命令。首先,我需要回忆一下相关的命令,可能涉及datetimedatectl。我得先确认这两个命令的具体用法区别。 用户可能是系统管理员或者开发者,遇到需要调整系统时间的情况,比如服务器时间不同步,或者测试某些时间相关的应用。他们可能需要临时修改时间,或者永久同步时区。还有可能是虚拟机或嵌入式设备上的时间设置问题。 需要分步骤介绍,先介绍如何查看当前时间,然后修改时间,可能包括日期时间,以及时区的设置。同时要注意权限问题,可能需要sudo。另外,使用date命令修改的时间在重启后可能会失效,所以需要介绍如何持久化更改,比如使用hwclock或者timedatectl。 可能还需要提到NTP服务的影响,比如系统如果启用了ntpd或chronyd,自动同步时间的话,手动修改后可能被纠正回来,这时候需要临时禁用NTP服务。用户可能没有提到这点,但这是常见的问题,应该包含在注意事项里。 还要考虑不同Linux发行版之间的差异,比如CentOSUbuntu在服务管理上的命令可能不同,但timedatectl是systemd的一部分,现在大多数发行版都支持。所以重点介绍timedatectl会更通用。 最后,给出示例命令,让用户能直接复制使用,并提醒谨慎修改系统时间,避免引起应用错误。可能还需要提醒修改系统时间会影响日志、计划任务等,所以建议在必要时操作,并考虑同步NTP服务器来保持时间准确。</think>在 Linux 系统中,修改时间主要可以通过 **`date`** **`timedatectl`** 命令实现。以下是具体用法注意事项: --- ### 一、临时修改系统时间(重启后可能失效) #### 1. 使用 `date` 命令 - **查看当前时间**: ```bash date ``` - **手动设置日期时间**(需 root 权限): ```bash sudo date -s "YYYY-MM-DD HH:MM:SS" ``` 示例: ```bash sudo date -s "2023-10-05 15:30:00" ``` --- ### 二、永久修改时间与时区(需同步硬件时钟) #### 1. 使用 `timedatectl` 命令(推荐) - **查看时间详细信息**: ```bash timedatectl ``` - **修改时区**(如设为上海时间): ```bash sudo timedatectl set-timezone Asia/Shanghai ``` - **同时修改日期时间**: ```bash sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS" ``` 示例: ```bash sudo timedatectl set-time "2023-10-05 15:30:00" ``` #### 2. 同步系统时间到硬件时钟(防止重启失效) ```bash sudo hwclock --systohc ``` --- ### 三、通过时区文件修改(可选) 手动链接时区文件(适合无 `timedatectl` 的系统): ```bash sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` --- ### 四、注意事项 1. **NTP 服务影响**: 如果系统启用了 NTP(如 `systemd-timesyncd` 或 `chrony`),自动时间同步会覆盖手动修改。 **临时禁用 NTP**: ```bash sudo timedatectl set-ntp 0 ``` 修改后重新启用: ```bash sudo timedatectl set-ntp 1 ``` 2. **谨慎修改时间**: 错误的时间可能导致日志混乱、证书验证失败等问题,建议在生产环境中优先使用 NTP 同步。 --- ### 示例流程(修改为上海时区并设置时间) ```bash # 1. 设置时区 sudo timedatectl set-timezone Asia/Shanghai # 2. 关闭NTP同步 sudo timedatectl set-ntp 0 # 3. 修改时间 sudo timedatectl set-time "2023-10-05 15:30:00" # 4. 同步到硬件时钟 sudo hwclock --systohc # 5. 可选:重新启用NTP sudo timedatectl set-ntp 1 ``` 如果有其他问题(如虚拟机时间异常),可能需要额外调整 BIOS 时间或虚拟机工具设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值