【转载】linux系统时间自动同步:ntp

NTP基本介绍

NTP(Network TimeProtocol,网络时间协议),使用来使本地机器与服务端机器时间保持同步的一种协议。如果我们只有一台机器那么只需要安装NTP客户端ntpdate这个包,然后找一个能用的时间服务器地址就可以实现本地与远程服务器时间保持同步。

如果我们有多台机器,其中只有一个可以访问公网,我们称之为管理机器,只需给管理器装上NTP服务端,然后再管理机器上运行NTP守护进程,其它被管理的内网机器同步时使用管理机器的内网IP地址,即可实现集群中全体机器的时间同步。

NTP客户端配置

简单两步,搞定单台机器时间同步。
1 安装ntpdate

yum install ntpdate

ntpdate无需任何依赖,也可以直接rpm安装

rpm -ivh http://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/Packages/ntpdate-4.2.6p5-28.el7.centos.x86_64.rpm

2 与远程机器时间同步

ntp常用服务器:
中国国家授时中心:210.72.145.44
NTP服务器(上海) :ntp.api.bz

阿里云的NTP时间服务器ntp1.aliyun.com

# ntpdate ntp1.aliyun.com
19 Oct 10:07:54 ntpdate[17142]: adjust time server 120.25.115.20 offset 0.026562 sec

显然这台机器需要能够访问互联网才能实现时间同步,其它更多NTP时间服务器地址可在官网或网上找到,如果是自己测试,可以先使用date命令修改本地时间,再进行测试。

3. 配置定时任务

3.1 方法一:

只需要把这条命令写入定时任何,即可实现自动同步时间。如每10分钟同步一次时间(以root用户登录):

# echo "*/10 * * * * /usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1" >> /var/spool/cron/root
# crontab -l
*/10 * * * * /usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1

3.1 方法一:

配置用户定时任务的语法:

crontab [-u user]file

crontab [-u user] [-l| -r | -e][-i]

参数与说明:

crontab -u//设定某个用户的cron服务

crontab -l//列出某个用户cron服务的详细内容

crontab -r//删除没个用户的cron服务

crontab -e//编辑某个用户的cron服务

 

例子:

假设当前用户是root,要建立root用户的定时任务

crontab -e

选择编辑器,编辑定时任务(这里假设是编辑器是vi)

按i进入编辑模式

0 1 * * * /root/test.sh

按esc退出编辑模式进入普通模式,输入:x或:wq保存退出

查看刚刚输入的定时任务

crontab -l 或 cat /var/spool/cron/root

根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令,使用由 VISUAL 或 EDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。
      cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。

重启crond:

/sbin/service crond restart

 

搭建NTP时间服务器(服务端配置)

如果我们需要实现集群内时间保持同步,显然最好的方案是自己搭建一台NTP服务器,然后其它机器同步这台NTP时间服务器上的时间,而NTP时间服务器同步公网上远程机器的时间,从而实现整套集群保持与北京时间同步。

1 安装ntp(NTP服务端的包名)

[root@m01 ~]# hostname -I
10.0.0.61 172.16.1.61
[root@m01 ~]# yum install ntp

2 启动ntpd服务

[root@m01 ~]# systemctl start ntpd
[root@m01 ~]# systemctl enable ntpd

3 其它内网机器同步NTP时间服务器(172.16.1.61)

[root@lb01 ~]# hostname -I
172.16.1.5 
[root@lb01 ~]# yum install ntpdate -y
[root@lb01 ~]# date -s '20081024'
[root@lb01 ~]# ntpdate 172.16.1.61
[root@lb01 ~]# date
Fri Oct 19 10:35:35 CST 2018

ntpd服务只要启动,自动会在后台为这台NTP服务器同步时间(可能需要等几分钟),不需要我们手动操作,其它机器只需同步这台NTP服务器即可。

 

 

另外,记录下,rdate时间服务器搭建

posted @ 2018-10-26 17:18  NewLife365  阅读(9833)  评论(0编辑  收藏  举报