项目环境:

一台linux ip:192.168.1.1  一台linux ip:192.168.1.100  

项目需求:

1:在192.168.1.1上搭建基于sshrsync的远程同步,另一台linux手动远程下拉1.1/test里内容

2:在192.168.1.100上搭建rsync的自动触发同步,使1.100/ss文件夹下的改动自动同步到1.1/test

3:在192.168.1.1上搭建NTP时间同步服务器,使其他服务器可以同步时间

实现步骤:

1:各个服务器都安装rsync程序,启动服务,设置为开机启动

[root@localhost ~]# yum -y install rsync

[root@localhost ~]# chkconfig rsync on

[root@localhost ~]# service xinetd restart

2192.168.1.100基于ssh的远程下拉

[root@bak1 ~]# rsync -avz root@192.168.1.1:/test /11           //下拉test目录到本地11目录下

3192.168.1.1上配置基于rsync的远程同步

[root@localhost ~]# vim /etc/rsyncd.conf                              //创建主配置文件(man rsyncd.conf里有模板)

 

  1        uid = nobody
  2        gid = nobody
  3        use chroot = yes
  4        log file = /var/log/rsync.log
  5        pid file = /var/run/rsyncd.pid
  6         [sw]                                                   //共享名
  7            path = /test                                     //共享路径
  8            auth users = sw                             //允许同步的用户名
  9            read only =yes   
 10            secrets file = /etc/rsync.db           //访问控制文件


[root@localhost ~]# vim /etc/rsync.db                               //创建访问控制文件

  1 sw:123                     //用户名和密码


[root@localhost ~]# chmod 600 /etc/rsync.db          //设置访问权限

[root@localhost ~]# service  xinetd restart 

4192.168.1.100基于rysnc的远程下拉

[root@bak1 ~]# rsync -avz sw@192.168.1.1::sw /11

5:在192.168.1.100上搭建rsync的自动触发同步

安装inotify源码包,编辑脚本配合rsync实现自动触发功能

[root@bak1 ~]#tar -zxvf inotify-tools-3.14.tgz -C /usr/src

[root@bak1 inotify-tools-3.14]# ./configure 

[root@bak1 inotify-tools-3.14]# make && make install

[root@bak1 ~]# vim /usr/bin/rsync.sh                                     //创建脚本文件

#!/bin/bash
/usr/local/bin/inotifywait -mrq -e modify,create,move,delete /ss | while read DIR EVENT FILE                                   //监视ss目录的创建修改删除等操作
do               
/usr/bin/rsync -aHvz --delete /ss/ /test                //远程同步到test
done


[root@bak1 ~]# chmod 600  /usr/bin/rsync.sh        //添加执行权限

6:测试同步结果

[root@bak1 ~]# touch /ss/123                                 //192.168.1.100建立测试文件

[root@bak1 ~]# sending incremental file list         //开始自动同步

[root@localhost ~]# ls /test                                    //192.168.1.1查看同步结果

123                                                                          //同步成功

7:用192.168.1.1搭建NTP服务器

[root@localhost ~]# yum install ntp-4.2.6p5-1.el6.centos.x86_64.rpm           //服务器和客户机都要安装ntp

[root@localhost ~]# vim /etc/ntp.conf

...
10 restrict 192.168.1.0 mask 255.255.255.0 nomodify     //只允许1网段访问ntp并且不许修改
...
27 server 127.127.1.0                          //手动指定本地硬件时钟为NTP时钟服务器
...


[root@localhost ~]# service ntpd restart

[root@localhost ~]# chkconfig ntpd on

8:客户机测试

[root@bak1 ~]# date -s 14:00                                  //客户机修改一个不准的时间

2014年 06月 25日 星期三 14:00:00 CST

[root@bak1 ~]# ntpdate 192.168.1.1

25 Jun 18:45:26 ntpdate[5497]: step time server 192.168.1.1 offset 14018.899543 sec

2014年 06月 25日 星期三 18:45:35 CST   

[root@bak1 ~]# crontab -e                                        //客户端设置计划任务来每天630同步时间

30 6 * * * ntpdate 192.168.1.1


总结:通过rsync可以实现多台服务器的实时同步,保证了内容的一致性。工作中可以应用到多台web服务器的内容上线,备份服务器的同步备份等。NTP时间同步可以保证局域网各个服务器时间一致性,杜绝时间误差。

排错: 建好rsync访问控制文件后要更改权限为600,如不改会因为系统内安全控制机制同步不成功。                         

            脚本要给执行权限才可以执行,默认新建的文件没有x权限。     

            ntp服务器端可以在配置文件中指定server 127.127.1.0为网络时钟,客户端不要开启ntp服务