Linux ntp时间服务部署

本文使用云服务器,系统是Ubuntu 20.04 LTS,以下操作都是在Ubuntu上面执行的!!

一、Linux系统时间命令

timedatectl命令

timedatectl 是现代 Linux 系统中最强大的时间管理命令,特别是对于使用 systemd 的系统。它不仅可以设置系统时间,还可以配置时区、启用或禁用 NTP(网络时间同步)等。

用法:

timedatectl # 显示当前的系统时间、时区、NTP 状态等

timedatectl set-time "2024-11-20 10:00:00" # 设置系统时间 timedatectl set-timezone Asia/Shanghai # 设置时区

timedatectl set-ntp true # 启用 NTP 同步

timedatectl show # 显示系统的时间设置

hwclock命令

hwclock 可以将硬件和软件时间做同步

用法:

-s, --hctosys 从硬件时钟设置系统时间

-w, --systohc 从当前系统时间设置硬件时钟

date命令

date 命令用于显示和设置系统时间

用法:

date # 显示当前系统日期和时间

date "+%Y-%m-%d" # 显示自定义格式的日期

date -s "2024-11-20 10:00:00" # 设置系统时间

bash 复制代码
# 查看系统当前时间
root@server:/opt # timedatectl
               Local time: Wed 2024-11-20 09:37:31 HKT
           Universal time: Wed 2024-11-20 01:37:31 UTC
                 RTC time: Wed 2024-11-20 01:37:32
                Time zone: Asia/Hong_Kong (HKT, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

二、搭建ntpd服务

  • 全世界的服务器,时间统一标准,可以以这个为准,cn.ntp.org.cn

基本上Linux的软件,用法都一样

  • 安装

  • 改配置

  • 启动

  • 使用

  • 以后,就是继续改配置,重新加载,重启

  • 继续使用

1、安装ntp软件
bash 复制代码
root@server:/opt # apt-get install ntp
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libnss-systemd libopts25 libpam-systemd libsystemd0 sntp systemd systemd-sysv
Suggested packages:
  ntp-doc systemd-container
The following packages will be REMOVED:
  systemd-timesyncd
The following NEW packages will be installed:
  libopts25 ntp sntp
The following packages will be upgraded:
  libnss-systemd libpam-systemd libsystemd0 systemd systemd-sysv
5 upgraded, 3 newly installed, 1 to remove and 58 not upgraded.
Need to get 5,153 kB of archives.
After this operation, 2,166 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
......
2、查看ntp软件信息
bash 复制代码
root@server:/opt # ls /usr/lib/systemd/system/ | grep ntp
ntp.service
ntp-systemd-netif.path
ntp-systemd-netif.service
root@server:/opt #

3、找到ntp软件的配置文件进行修改

bash 复制代码
# vim /etc/ntp.conf
直接在末行添加以下内容

# 添加ntp的运行日志
logfile /var/log/my_ntp.log

# 记录程序的运行进程号的,可以用于写脚本,读取这个文件,就找到了程序的进程id
pidfile /var/run/ntpd.pid

# 指定了两个 NTP 服务器的地址
server ntp.aliyun.com iburst prefer
server cn.pool.ntp.org iburst 

# ntp.aliyun.com:阿里云的 NTP 服务器。
# cn.pool.ntp.org:是 NTP.org 提供的中国地区的 NTP 服务器池。
4、进行测试
bash 复制代码
# 当前时间是2024 10:59:35
root@server:/opt # date
Wed 20 Nov 2024 10:59:35 AM HKT

# 修改时间为过去时间
root@server:/opt # timedatectl set-time '2024-11-20 10:00'
root@server:/opt # date
Wed 20 Nov 2024 10:00:02 AM HKT
root@server:/opt # timedatectl
               Local time: Wed 2024-11-20 10:00:17 HKT
           Universal time: Wed 2024-11-20 02:00:17 UTC
                 RTC time: Wed 2024-11-20 02:00:17
                Time zone: Asia/Hong_Kong (HKT, +0800)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no


# 启动ntpd服务,等待时间是否同步
root@server:/opt # systemctl restart ntp
root@server:/opt # systemctl status ntp
● ntp.service - Network Time Service
     Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-11-20 10:01:57 HKT; 2s ago
       Docs: man:ntpd(8)
    Process: 801023 ExecStart=/usr/lib/ntp/ntp-systemd-wrapper (code=exited, status=0/SUCCESS)
   Main PID: 801044 (ntpd)
      Tasks: 2 (limit: 4393)
     Memory: 1.6M
     CGroup: /system.slice/ntp.service
             └─801044 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 113:118

Nov 20 10:01:57 server ntpd[801044]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Nov 20 10:01:57 server ntpd[801044]: Listen normally on 2 lo 127.0.0.1:123
......
5、查看时间同步状态
bash 复制代码
root@server:/opt # ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000

root@server:/opt # timedatectl
               Local time: Wed 2024-11-20 11:02:20 HKT
           Universal time: Wed 2024-11-20 03:02:20 UTC
                 RTC time: Wed 2024-11-20 02:02:36
                Time zone: Asia/Hong_Kong (HKT, +0800)
System clock synchronized: yes
              NTP service: n/a
          RTC in local TZ: no

# 以上可以看到时间是恢复正常了,从过去10点恢复到11点了
6. 这台机器,就是一个时间服务器了,可以作为上游机器使用。
相关推荐
出发行进1 小时前
Flink错误:一historyserver无法启动,二存在的文件会报错没有那个文件或目录
大数据·linux·hadoop·flink·虚拟机
这猪好帅1 小时前
【Linux网络编程】套接字使用--TCP echo server的实现
linux·网络·tcp/ip
sun0077001 小时前
Ubuntu networkmanager
linux·运维·ubuntu
爱串门的小马驹1 小时前
git,ssh免密公钥配置,gitee为例,GitHub,gitlab同理
运维·git·ssh
FIT2CLOUD飞致云2 小时前
案例研究|阿特斯的JumpServer分布式部署和多组织管理实践
运维·开源·堡垒机·jumpserver
TeYiToKu2 小时前
笔记整理—linux驱动开发部分(13)块设备
linux·c语言·驱动开发·笔记·嵌入式硬件·arm
新知图书2 小时前
Spark SQL大数据分析快速上手-完全分布模式安装
大数据·服务器·spark
DisonTangor2 小时前
Linux 6.13 将工作队列并发限制提高了四倍
linux·运维·服务器
XY.散人3 小时前
初识Linux · 线程概念
linux·运维·服务器