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
如果出现了目录文件计算的数字代表能同步了。