项目环境:
一台linux ip:192.168.1.1 一台linux ip:192.168.1.100
项目需求:
1:在192.168.1.1上搭建基于ssh和rsync的远程同步,另一台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
2:192.168.1.100基于ssh的远程下拉
[root@bak1 ~]# rsync -avz [email protected]:/test /11 //下拉test目录到本地11目录下
3:192.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
4:192.168.1.100基于rysnc的远程下拉
[root@bak1 ~]# rsync -avz [email protected]::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 //客户端设置计划任务来每天6:30同步时间
30 6 * * * ntpdate 192.168.1.1
总结:通过rsync可以实现多台服务器的实时同步,保证了内容的一致性。工作中可以应用到多台web服务器的内容上线,备份服务器的同步备份等。NTP时间同步可以保证局域网各个服务器时间一致性,杜绝时间误差。
排错: 建好rsync访问控制文件后要更改权限为600,如不改会因为系统内安全控制机制同步不成功。
脚本要给执行权限才可以执行,默认新建的文件没有x权限。
ntp服务器端可以在配置文件中指定server 127.127.1.0为网络时钟,客户端不要开启ntp服务