rsync 服务配置

rsync的功能特性:
1:可以镜像保存整个目录树和文件系统
2:可以增量同步数据,文件传输效率高,因而同步时间短。
3:可以保持原有文件的权限、时间等属性。
4:可以加密传输数据,保证了数据的安全性。
5:加上inotify就能实现数据实时同步了。(触发式同步)

rsync 是客户端把数据同步到服务端去
 
获取软件:
http://rsync.samba.org       下载自己需要的软件版本
http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
 
服务搭建环境:
192.168.10.101              rsyncd 服务器
192.168.10.102              rsyncd 源数据端
 
 
服务配置:
 
192.168.10.101  服务器
 
服务器端软件安装:

rsync 软件安装:
[root@183 ]# tar xf rsync-3.0.7.tar.gz -C /usr/src/
[root@183 ]# cd /usr/src/rsync-3.0.7
[root@183 ]# ./configure --prefix=/usr/local/rsync
[root@183 ]# make;make install

inotify 软件安装:
[root@183 ]# tar xf inotify-tools-3.14.tar.gz -C /usr/src/
[root@183 ]# ./configure --prefix=/usr/local/inotify
[root@183 ]# make;make install

修改配置文件
[root@183 ]# cd /usr/local/rsync/server
[root@183 ]# vim rsync.conf
# Distributed under the terms of the GNU General Public License v2
 
 # Minimal configuration file for rsync daemon
 # See rsync(1) and rsyncd.conf(5) man pages for help
 
 # This line is required by the /etc/init.d/rsyncd script
 pid file =  /usr/local/rsync/server/rsyncd.pid                #pid文件存放路径
 port = 873  #指定运行的端口
 address =  192.168.10.101   #本机IP地址
 uid = root  #运行的用户id
 gid = root  #运行的组id
 
 use chroot = yes  #仅用户
 read only = no  #关闭只读模式
 
 
 #limit access to private LANs
 hosts allow= 192.168.10.102 192.168.10.103              #只允许同步数据的服务器地址
 hosts deny=*  #拒绝所有
 
 max connections = 50  #连接数
 motd file =  /usr/local/rsync/server/rsyncd.motd
 
 #This will give you a separate log file
 #log file = /log/rsync.log
 
 #This will log every file transferred - up to 85,000+ per user, per sync
 #transfer logging = yes
 
 log format = %t %a %m %f %b
 syslog facility = local3
 timeout = 300   #连接超时时间
 
 [soft]   #同步子目录名
 path = /data   #同步目录路径
 list=yes                                                 
 hosts allow= 192.168.10.102 192.168.10.103               #同步的服务器地址
 ignore errors
 auth users = root     
 secrets file =  /usr/local/rsync/server/rsyncd.secrets   #服务器端用户和密码文件存放路径
 comment = backup home
 exclude =   beinan/  samba/
 
 [shji]
 path = /data
 list=yes
 hosts allow= 192.168.10.102 192.168.10.103 
 ignore errors
 auth users = root
 secrets file = /usr/local/rsync/server/rsyncd.secrets
 comment = backup home
 exclude =   beinan/  samba/
 
[root@183 ]# echo "root:123456789" >  /usr/local/rsync/server/rsyncd.secrets
[root@183 ]# chmond 600 /cron/rsync/server/rsyncd.secrets
[root@183 ]# /usr/local/rsync/bin/rsync --daemon --config= /usr/local/rsync/server/rsync.conf &  #启动rsync服务
[root@183 ]# netstat -lntp
  tcp    0    0 192.168.10.101:873      0.0.0.0:*       LISTEN   8239/rsync




数据源端配置

rsync 软件安装:
[root@184 ]# tar xf rsync-3.0.7.tar.gz -C /usr/src/
[root@184 ]# cd /usr/src/rsync-3.0.7
[root@184 ]# ./configure --prefix=/usr/local/rsync
[root@184 ]# make;make install

编辑同步数据脚本

[root@184 ]# vim /usr/local/rsync/rsync.sh
#!/bin/bash
 src=/data/soft
 des=soft
 host="192.168.10.101"
 /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib $src | while read files
 do
 for hostip in $host
 do
  /usr/local/rsync/bin/rsync -vzrtopg --delete --progress $src root@$hostip::$des --password-file=/usr/local/rsync/client/rsync.password
 done
 echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
 done


[root@184 ]# echo "123456789" >/usr/local/rsync/client/rsync.password
[root@184 ]# chmod 600 /usr/local/rsync/client/rsync.password


可以用手动测试下数据是否能同步
/usr/local/rsync/bin/rsync -vzrtopg --delete --progress /data/soft [email protected]::soft --password-file=/usr/local/rsync/client/rsync.password

如果出现了目录文件计算的数字代表能同步了。


你可能感兴趣的:(linux,rsync,inotify)