Linux服务器时间同步

本文详细介绍了如何在Linux系统中使用ntpdate命令同步时间,包括安装、通过定时任务与阿里云服务器同步、搭建时钟服务器以及配置crontab自动执行同步。还涵盖了NTPServer的配置和验证服务的方法。
摘要由CSDN通过智能技术生成

在Linux系统中同步时间时,需要了解ntpdate这个命令,默认该命令在主流的Linux发行版中都有安装,默认安装路径/usr/sbin/ntpdate。
以下操作皆在root帐号下进行,如果使用非root帐号,则需要该帐号为sudo用户能进行root权限的操作。

一、安装ntpddate

如果Linux系统中没有安装,可以通过如下命令进行安装:

#centos,redhat系列
yum install ntpdate
#debian,ubuntu系列
apt install ntpdate
#archlinux系列
pacman -S ntpdate

二、快捷方案(仅在服务器都能联网情况下使用)

在全部服务器都可以联网的情况下,可以直接使用定时任务同步阿里云时间服务器。

首先测试同步时间命令是否可用

#手动同步阿里云时间服务器时间
ntpdate ntp.aliyun.com  

出现类似如下提示说明命令可用。
命令可用
为使服务器自动同步时间,可将同步命令加到定时任务。

开始编辑文件内容 crontab -e

#输入定时执行命令:每一个小时执行一次
0 * * * * /usr/sbin/ntpdate -s ntp1.aliyun.com

保存后可通过 crontab -l 查看任务列表

三、搭建时钟服务器(NTP Server)

(在服务器不支持联网的情况下也可使用)

选取局域网内任意服务器作为时钟服务器。
ntp配置文件的路径是 /etc/ntp.conf,修改配置文件时先进行备份。

#备份
cp  /etc/ntp.conf /etc/ntp.conf.bak   
#vim编辑文件
vim /etc/ntp.conf   

配置文件中,增加如下内容:

# Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

这个是用来允许192.168.1.*这个网段的服务器都可以使用该ntp服务器同步时间。这里可以根据你实际情况来设定网段。

server ntp.aliyun.com
server 127.127.1.0 prefer
fudge  127.127.1.0 stratum 10

配置行解释: server ntp.aliyun.com:阿里云时钟源。
server 127.127.1.0:将本地时钟源(127.127.1.0)指定为时间同步服务器。
fudge 127.127.1.0 stratum 10:设置本地时钟源(127.127.1.0)的层级为 10。stratum 值表示时钟的准确性级别,通常在 0 到 15 之间,其中 0表示最准确的原子钟。

配置文件ntp.conf图例:
ntp.conf示例

四、启动NTP服务

配置文件配置好保存后,我们可以通过systemctl命令来启动ntp服务。

#启动服务
systemctl start ntpd   
#设置开机自启动,避免重启服务器影响ntp服务
systemctl enable ntpd  

服务启动后可以通过 ntpstat 或者 systemctl status ntpd 命令来验证服务是否正常。

ntpstat:
在这里插入图片描述
systemctl status ntpd:
在这里插入图片描述

#重启ntpd服务
systemctl restart ntpd   
#查看NTP配置
ntpq -p  

查看配置

字段名含义
remote本机和上层ntp的ip或主机名,“+”有连线可做候选,“*”正在使用的
refid更上一层的ntp地址
ststratum的级别
when多少秒前曾经同步过时间
poll下次更新在多少秒后
reach已经向上层ntp服务器要求更新的次数
delay网络延迟
offset时间补偿
jitter系统时间与bios时间差

五、客户端/服务端手动同步时间

#子节点手动同步主节点(192.168.1.2)时间
ntpdate 192.168.1.2  

#主节点手动同步阿里云时间服务器时间
ntpdate ntp.aliyun.com  

如果提示以下信息,说明节点自身ntp在使用中,需要停止才能手动同步时间。
在这里插入图片描述

停止服务 systemctl stop ntpd

注意:子节点手动同步时间成功的基础上可以配置自动执行同步。 手动更新主节点时间后记得启动主节点ntp服务供子节点同步使用。

六、配置crontab自动执行同步

自动执行同步配置在子节点服务器。
使用crontab定时任务来定期执行ntpdate同步命令,例如我们每小时执行一次,可以通过以下方式实现。
首先在命令终端中输入 crontab -e 命令,然后输入如下命令保存即可。
开始编辑文件内容,输入定时执行命令:

#每一个小时执行一次
0 * * * * /usr/sbin/ntpdate -s <时间服务器IP>

在这里插入图片描述

保存后可通过 crontab -l 查看任务列表
在这里插入图片描述

如果后续要删除 crontab 中的定时任务,可以使用以下命令 crontab -e
这将打开当前用户的 crontab 文件进行编辑。然后,找到要删除的定时任务行,将其删除或注释掉(在行的前面添加 # 符号)。保存并退出编辑器。

如果您想删除所有的定时任务,可以直接执行以下命令 crontab -r
这将删除当前用户的所有定时任务,包括之前设置过的所有定时任务。
请注意,在执行上述命令之前,请确认您真的要删除定时任务,并且谨慎操作以避免误删重要的任务。

# 带日志输出的时间同步定时任务表达式
*/1 * * * * /bin/bash -c 'echo "$(date)" >> /var/log/ntpdate.log && /usr/sbin/ntpdate 172.30.24.85 >> /var/log/ntpdate.log 2>&1'

这可以在 /var/log/ntpdate.log 此文件下查看执行信息

  • 24
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值