linux通过ntpdate网络校时

本文介绍了Linux系统中时间同步的两种方式:手动校时和网络校时。手动校时涉及使用date和hwclock命令来调整Linux系统时间和BIOS时间。网络校时则通过ntpdate命令实现,并可通过crontab计划任务或开机脚本自动执行。

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

目前 Linux 系统上面有两个时间喔,一个是 Linux 系统,另一个则是 BIOS 时间(真正的硬件记录的时间)! 我们可以使用 date 这个指令来手动修正目前主机的时间,不过, date 这个指令仅修正 Linux 时间而已,我们还需要以 hwclock 这个指令来将 BIOS 时间也更新才行!
    hwclock [-rw]
    -r:查看现有BIOS时间
    -w:将现在的linux系统时间写入BIOS中
    当我们进行完 Linux 时间的校时后,还需要以 hwclock -w 来更新 BIOS 的时间,因为每次开机的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据。
    1. 开机的时候自动网络校时:
    vi /etc/rc.d/rc.local
    /usr/sbin/ntpdate -u 192.168.0.2 192.168.0.3 192.168.0.4;   /sbin/hwclock -w
    2. 设定计划任务
    crontab -e
    10 5 * * * root ntpdate 192.168.0.2 ;hwclock -w
    这样每天5:10自动进行网络校时

ntpdate命令:   
    通过轮询指定的确定正确时间的 NTP 服务器, ntpdate 命令设置本地日期和时间。它从指定的每个服务器获得了一些样本,并应用标准 NTP 时钟过滤器和选择算法来选择最好的样本。此 ntpdate 命令使用以下方法进行时间调整:
    * 如果它确定时钟偏差超过 0.5 秒,它通过调用 settimeofday 子例程设置时钟时间。在引导时间,这是一个首选的方法。
    * 如果它确定时钟偏差小于 0.5 秒,它通过调用 adjtime 子例程和偏移量来调整时钟时间。此方法倾向于用牺牲一些稳定性来保持漂移时钟更加准确。 
    当不是通过运行一个守护程序而是从 cron 命令有规则的运行 ntpdate 命令时,每一小时或两小时执行一次可以保证足够的走时精度,从而避免调整时钟。
    48 */1 * * * /usr/sbin/ntpdate -u 172.16.58.40 172.16.58.14 172.23.32.142 172.24.18.141 172.24.147.11
    1 1 * * * /sbin/hwclock -w
    注意事项:
       1. 使用很多服务器可以大幅度改善 ntpdate 命令的可靠性与精度。尽管能使用单一服务器,但您能通过提供至少三个或四个服务器以获得更好的性能。
       2. 如果一个类似 xntpd 守护程序的 NTP 服务器守护程序正在同一主机上运行,命令将拒绝 ntpdate 设置日期。
       3. 你必须有 root 权限才能在主机上运行这个命令。
    注意, ntpdate 的准确性和可靠性取决于服务器的数量、每次运行它时的轮询数以及运行之间的时间间隔。ntpdate 根据需要可以手动运行来设置主机时钟,也可以从主机启动脚本中运行,在引导时设置时钟。某些情况下,它可用于在启动NTP 守护程序xntpd 之前对时钟进行初始设置。也可以从cron 脚本中运行ntpdate 。但是务必要注意,包含人为产生的cron 脚本的ntpdate 不能替代NTP 守护程序,后者使用高级算法,在尽量减少使用资源的同时,尽量提高准确性和可靠性。最后,由于ntpdate 不会像xntpd 一样控制主机时钟频率,因此使用ntpdate 的准确性很有限。
### Linux 网络间同步 NTP 服务配置方法 在Linux系统中,配置网络间同步(NTP)服务是确保系统间准确性和一致性的重要步骤。以下是关于如何在Linux中配置NTP服务的详细说明。 #### 1. 安装 NTP 或 Chrony 在现代Linux发行版中,通常推荐使用 `chrony` 替代传统的 `ntp`,因为 `chrony` 在间歇性网络连接下表现更佳,并且更适合虚拟化环境[^4]。可以通过以下命令安装 `chrony`: ```bash # 对于基于RHEL/CentOS的系统 yum install chrony -y # 对于基于Debian/Ubuntu的系统 apt update && apt install chrony -y ``` #### 2. 配置 NTP 客户端 编辑 `chrony` 的配置文件 `/etc/chrony/chrony.conf` 或 `/etc/chrony.conf`,添加或修改服务器地址。例如: ```bash server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst server 2.pool.ntp.org iburst ``` 如果需要使用自定义的服务器(如企业内部的服务器),可以替换为实际的IP地址或域名[^2]。 #### 3. 启动并启用 Chronyd 服务 安装完成后,启动并设置 `chronyd` 服务开机自启: ```bash systemctl start chronyd systemctl enable chronyd ``` #### 4. 检查间同步状态 使用以下命令检查间同步的状态: ```bash chronyc sources -v chronyc tracking ``` 如果输出显示成功连接到服务器,则表示配置正确[^4]。 #### 5. 配置 NTP 服务器 若需要将当前主机作为 NTP 服务器供其他主机同步间,需在 `/etc/chrony/chrony.conf` 中添加允许客户端访问的配置。例如: ```bash allow 192.168.1.0/24 ``` 此配置允许子网 `192.168.1.0/24` 内的设备同步间[^3]。 #### 6. 测试间同步 在客户端上运行以下命令以手动同步间: ```bash ntpdate <NTP_SERVER_IP> ``` 如果提示 `no server`,请等待几分钟后重试;如果提示 `the NTP socket is in use, exiting`,则需要停止本地的 NTP 服务[^5]: ```bash systemctl stop ntpd.service ``` #### 7. 注意事项 - **避免同运行 `ntp` 和 `chrony`**:两者不可同运行,否则可能导致冲突[^3]。 - **平滑同步 vs 立即同步**:生产环境中建议使用 `chrony` 提供的平滑同步功能,而非直接使用 `ntpdate` 进行立即同步[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值