帮助中心

这里有最新的使用文档和教程

< 返回

Linux同步时间的方法,硬件时间同步

2023-05-25 20:02 作者:31IDC 阅读量:1501 所属分类:Linux系统

Linux同步时间的方法

强烈建议以下方案:

 

设置时区:timedatectl set-timezone Asia/Shanghai

设置硬件时间:hwclock --set --date="05/24/23 15:33"

查看硬件时间:hwclock  --show

设置系统时间与硬件时间同步:hwclock --systohc

查看系统时间date

 

 

方法一:非生产时使用

第一种是在所有机器上,使用连接工具的并发命令功能,同时运行修改时间命令,比如执行date -s “2019-05-25 17:00:00” ,这个方法适合自己测试环境用

 

第二种就是安装了一个ntpdate命令,然后同步时间的master是一个所有人都可以用的master

 

安装工具

yum -y install ntp ntpdate

同步网络时间

ntpdate cn.pool.ntp.org

 

方法二:NTP服务

使用ntpd server,为多台机器同步时间,这里以三台机器为例

 

第一步:在三台机器上运行ntpdate命令,验证是否安装有ntpdate,如果没有运行yum -y install ntp安装该服务

 

第二步:选出一台机器,做master,编辑它的/etc/ntp.conf文件

 

进入配置文件之后,首先将配置文件中所有的restrict开头的行注释掉,如下面这种

 

其后另写一条生效的服务配置

 

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

格式:restrict 允许的ip范围一般默认就行 mask 允许同步的网段子网掩码 nomodify notrap

 

将所有server开头的行全部注释,添加如下的新信息

 

server 127.127.1.0

fudge 127.127.1.0 stratum 10

 

第三步:master启动ntp服务并开机自启

 

service ntpd restart

chkconfig ntpd on

 

第四步:所有子节点运行命令,同步master的时间。

 

ntpdate  master节点ip

 

如果子节点运行命令之后,如果提示no server那就等两分钟左右在在运行

如果提示`the NTP socket is in use, exiting`说明当前子节点的ntp服务启动了,你要关掉它

 

第五步:让集群自己同步时间,有两种方式

 

第一种方式:通过crontab来完成同步,推荐这种,容易控制时间同步频率

 

所有子节点配置定时任务,半分钟同步一次,命令如下:

crontab -e

 

上面的命令会打开linux自带的定时任务列表在其中添加如下一条信息:

30 * * * * /usr/sbin/ntpdate master的ip或域名 >> /root/ntpdate.log 2>&1

 

后期需要观察一下/root/ntpdate.log中有没有定时同步时间的运行日志

 

说明一下:30 * * * * 代表了五个时间占位符,上面写的代表30分钟同步一次,你可以自己改,五个站位符号按顺序分别为分、时、日、月、天

 

*    *    *    *    *

|    |    |    |    |

|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)

|    |    |    +---------- 月份 (1 - 12) 

|    |    +--------------- 一个月中的第几天 (1 - 31)

|    +-------------------- 小时 (0 - 23)

+------------------------- 一小时中的某分钟 (0 - 59)

 

一般情况下直接指定数字就够了,但是它可以指定表达式来完成更多变的事件指定,表达式很简单,网上搜索案例就行了

 

第二种方式:依赖于ntp服务

 

所有子节点同样配置/etc/ntp.conf文件,不过不需要master那样麻烦,只需要注释所有restrict和server配置,添加“server master节点ip”即可,最后保证所有节点启动并设置开机自启ntp服务

 

但是这个方法推荐,有时候不一定灵不灵,而且无法灵活的控制频率

 

31IDC - 12 年深耕海外 IDC 高端资源