- 背景
局域网不能上外网情况下同步集群时间,搭建NTP服务器,并设置其他主机每小时同步时间(假设使用地址为192.168.3.21的主机作为NTP服务器)
- 安装NTP
$ sudo yum install ntp
- 配置NTP
$ sudo vi /etc/ntp.conf
修改文件内容如下:
driftfile /var/lib/ntp/drift
restrict default nomodify notrap noquery
restrict 127.0.0.1
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 0
各行具体意义不再解释,网上有很多解释可以查询参考。
- 启动NTP服务器
$ sudo service ntpd start
- 服务器端同步硬件时钟
$ sudo vi /etc/sysconfig/ntpd
修改如下:
SYNC_HWCLOCK=yes
- 客户端定时更新时间,并且写到硬件里去
$ sudo vi /etc/crontab
添加如下内容:
0 */1 * * * root ntpdate 192.168.3.21; hwclock -w
crontab文件简单说明
命令格式的前一部分是对时间的设定,后面一部分是要执行的命令。时间的设定,前面五个*号代表五个数字,数字的取值范围和含义如下:
分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
除了数字还有几个个特殊的符号就是“*”、“/”和“-”、“,”,“*”代表所有的取值范围内的数字,“/”代表每的意思,“*/5”表示每5个单位,“-”代表从某个数字到某个数字,“,”分开几个离散的数字。以下
举几个例子说明问题:
每天早上8点:0 8 * * * command
每个小时:0 */1 * * * command
晚上11点到早上8点之间:0 23-8 * * * command
- 常用命令
- sudo ntpq -p 查看本机和上层服务器的时间同步结果
- sudo ntpdate ip 客户端要和NTP server进行时钟同步,ip为NTP服务器地址
- sudo crond restart 重新启动定时任务
- 注意事项
当ntpd服务重启时(或者第一次启动时),客户端需要等待10分钟左右才能与NTP服务器连接上。
如执行命令:
$ sudo ntpdate 192.168.3.21
会有如下提示信息:
21 Sep 20:19:21 ntpdate[26860]: no server suitable for synchronization found
等10分钟左右就可以执行成功了。