rsync简介
优点:rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。
缺点:rsync同步需要扫描所有文件进行对比,当文件非常大时,会消耗很多资源和时间
==============================================================
RSYNC的特性
rsync:功能类似cp,scp
特点:(远程传输默认是不加密的)
1、可以镜像保存整个目录树或文件系统
2、较高的数据传输效率
3、可以借助于ssh实现安全的远程传输
4、支持匿名传输
rsync命令的工作模式:
第一中模式:shell模式,即为本地模式;
第二种模式:远程shell模式,可以利用ssh协议承载远程传输过程;
第三种模式:列表模式,仅列出源中的内容,-n;
第四种模式:服务模式,工作为rsync为守护进程,能够接受客户端的数据同步请求;
使用rsync的基本参数和用法
rsync命令的选项:
-n:同步测试,不执行真正的复制过程
-v:详细输出模式
-q:静默模式
-c:checksum,开启校验功能
-r:递归辅助
***rsync命令中,如果源路径是目录,且复制路径时末尾有/,则会复制目录内的所有内容;如果
没有/,则会复制目录及目录的所有文件
-a:归档,保留文件的原有属性
-p:保留文件的权限
-t:保留文件是时间戳
-l:保留符号链接
-g:保留属组
-o:保留属主
-D:保留设备文件
-e ssh:使用ssh作为传输承载
-z:压缩后传输
--progress:显示传输进度
--stats:
使用格式:
Access via remote shell:
Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST
rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST
******************更详细的使用请参考官方文档*******************************
使用rsync实现数据同步
主机
ip地址
rsynchostone
172.16.1.20
rsynchosttwo
172.16.1.21
这里以两台web服务器为例,根目录均为/data/htdocs/www
1、为rsynchoxtone配置配置文件
#vim /etc/rsyncd.conf
####################################
###########Globle setting##############
uid = nobody
gid = nobody
user chroot = no
max connections = 5
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
###################################
[www]
path = /data/htdocs/
ignore errors = yes
read only = no
list = faulte
hosts allow = 192.168.1.131
auth users = www
secrets file = /etc/rsyncd.password
=====================
创建密码文件
#vim /etc/rsyncd.password
www:mageedu //注意密码不能超过八各字符
2、重启xinetd服务
#/etc/init.d/xinetd restart
3、为rsynchosttwo安装inotify-tools
****由于inotify特性需要Linux内核的支持,在安装inotify-tools前要先确认Linux系统内核是否达到了 2.6.13以上,如果Linux内核低于2.6.13版本,就需要重新编译内核加入inotify的支持,也可以用如下方法判断,内核是否支持 inotify
参看内核版本:
#uname -r
编译安装inotify-tools
1)下载相关源码包:
http://lists.pld-linux.org/mailman/pipermail/pld-cvs-commit/Week-of-Mon-20110418/309980.html
2)编译安装
#tar xf inotify-tools-3.14.tar.gz
#cd inotify-tools-3.14
#./configure && make && make install
4、为rsynchosttwo上的inotify创建开机启动脚本
#vim /root/rsync.sh
#################################################
#!/bin/bash
src=/data/htdocs/www/
des=www
ip=192.168.1.130
/usr/local/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f‘ -e modify,delete,create,attrib $src | while read file
rsync -vzrtopg --delete --progress $src www:@ip::des --password-file=/etc/rsyncd.password &&
echo "$src was rsyncd . now !"
done
5、启动守护进程,启动脚本
#service xinetd start
#bash -x rsync.sh
6、在rsynvhosttwo的根目录创建文件,就可以在rsynchostone的根目录看见了