ubuntu18.04安装chrony时钟同步服务器

# 安装前需要卸载ntp,通过apt安装的可以用:
sudo apt-get remove --purge ntp

# 清理:
sudo apt-get autoremove

# 卸载配置文件和数据:
sudo rm -rf /etc/ntp*
sudo rm -rf /var/lib/ntp

# 安装chrony
sudo apt update
sudo apt install chrony

# 配置chrony
sudo vim /etc/chrony/chrony.conf
  # 因为想修改本地时间,不去和其他服务器同步,将下面四个pool注释掉。想同步外部时间的可以加上。
#pool ntp.ubuntu.com        iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2

# 添加自己作为服务器
server 192.168.20.55
# 为了方便客户端连接权限设置为允许所有
allow all
# 当无法和其他同步时,使用本地的时间给客户端同步
local stratum 10

# 服务重启,能用就行
sudo service chrony restart
sudo systemctl restart chronyd.service

# 设置开机自启
sudo systemctl enable chrony

# 检查chrony状态
sudo systemctl status chrony

<think>好的,我现在需要帮助用户解决在Ubuntu上使用ntpdate进行时间同步,并创建systemd服务实现每分钟同步和开机自启的问题。首先,我需要回顾用户提供的引用内容,看看有没有相关的指导。 用户提到了引用[2],其中详细介绍了ntpdate的使用方法,包括手动同步时间、写入BIOS时钟以及通过cron定时执行。不过用户希望使用systemd服务来实现每分钟同步,这可能比cron更灵活。另外,引用[4]提到了systemd-timesyncd服务,但用户明确想用ntpdate,所以可能需要禁用系统自带的时间同步服务,如引用[1]中的`timedatectl set-ntp false`。 首先,我需要确认ntpdate是否已安装。在Ubuntu中,ntpdate通常包含在ntp包中,所以可能需要安装ntp。然后编写一个同步脚本,使用ntp.aliyun.com作为NTP服务器。接下来,创建systemd服务单元文件,设置每分钟执行一次。这里要注意,systemd的定时任务可以使用OnCalendar=*-*-* *:*:00来实现每分钟触发。同时,需要确保服务在启动时运行,并正确设置依赖关系,比如After=network.target。 验证部分需要检查服务状态、查看日志,以及手动测试脚本是否正确执行。另外,用户可能还需要禁用原有的时间同步服务,如systemd-timesyncd,避免冲突。引用[1]中提到的`sudo timedatectl set-ntp false`可以停止系统自带的服务,这一步可能需要包含在教程中。 需要注意的是,ntpdate可能已被标记为废弃,推荐使用chrony或ntpd进行持续同步。但用户明确要求使用ntpdate,所以需要按照需求操作,并在注意事项中提醒可能的替代方案。 最后,确保所有步骤符合Ubuntu的版本,比如18.04或更高版本,不同版本可能有些差异。检查systemd的定时器语法是否正确,以及权限问题,比如脚本是否可执行,服务文件是否放在正确的位置(/etc/systemd/system/)。 总结步骤:安装ntpdate,创建同步脚本,创建systemd服务和定时器,启用并测试服务,验证时间同步,最后注意事项提醒。</think>### 分步指南:Ubuntu通过ntpdate实现时间同步及systemd服务配置 #### 一、安装ntpdate工具 1. 更新软件源并安装: ```bash sudo apt update sudo apt install ntpdate -y ``` 此工具包含时间同步所需的核心命令[^2]。 #### 二、编写时间同步脚本 1. 创建脚本文件`/usr/local/bin/ntpdate-sync.sh`: ```bash sudo nano /usr/local/bin/ntpdate-sync.sh ``` 2. 输入以下内容: ```bash #!/bin/bash ntpdate ntp.aliyun.com && hwclock -w ``` - `ntpdate ntp.aliyun.com`:使用阿里云NTP服务器同步时间 - `hwclock -w`:将系统时间写入硬件时钟[^2] 3. 赋予执行权限: ```bash sudo chmod +x /usr/local/bin/ntpdate-sync.sh ``` #### 三、创建systemd服务与定时器 1. **服务单元文件** 创建`/etc/systemd/system/ntpdate-sync.service`: ```ini [Unit] Description=NTP Time Synchronization After=network.target [Service] Type=oneshot ExecStart=/usr/local/bin/ntpdate-sync.sh [Install] WantedBy=multi-user.target ``` 2. **定时器单元文件** 创建`/etc/systemd/system/ntpdate-sync.timer`: ```ini [Unit] Description=Run NTP sync every minute [Timer] OnCalendar=*-*-* *:*:00 AccuracySec=1s Persistent=true [Install] WantedBy=timers.target ``` 3. **启用服务**: ```bash sudo systemctl daemon-reload sudo systemctl enable ntpdate-sync.service ntpdate-sync.timer sudo systemctl start ntpdate-sync.timer ``` #### 四、禁用系统默认时间同步 为避免冲突,停止Ubuntu内置的`systemd-timesyncd`: ```bash sudo timedatectl set-ntp false sudo systemctl stop systemd-timesyncd sudo systemctl disable systemd-timesyncd ``` 此操作需在配置自定义同步前完成[^1][^4]。 #### 五、验证配置 1. **检查定时器状态**: ```bash systemctl status ntpdate-sync.timer ``` 2. **查看同步日志**: ```bash journalctl -u ntpdate-sync.service -f ``` 3. **手动测试脚本**: ```bash sudo /usr/local/bin/ntpdate-sync.sh ``` 4. **验证硬件时钟同步**: ```bash hwclock --show ``` ### 注意事项 1. **ntpdate的局限性** `ntpdate`仅提供一次性时间校准,不调整时钟频率,适合简单场景。若需高精度同步,建议改用`chrony`或`ntpd`[^2]。 2. **防火墙配置** 确保UDP 123端口开放以允许NTP通信。 3. **服务器选择** 可替换`ntp.aliyun.com`为其他公共NTP服务器(如`pool.ntp.org`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值