Rsync基本原理

Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
rsync的优点
①可以镜像保存整个目录树和文件系统;
②可以很容易做到保持原来文件的权限、时间、软硬链接等;
③无须特殊权限即可安装;
④优化的流程,文件传输效率高;
⑤可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接;
⑥支持匿名传输

Rsync 安装

Rsync server      192.168.1.100

Rsync clinet      192.168.1.200

yum install -y rsync    采用yum 安装rsync 
getenforce              查看Selinux 是否开启,如果值为1说明是开启的
setenforce 0            关闭Selinux且不需要重启服务器

重启服务:/etc/init.d/xinetd restart
用ps -ef |grep rsync 查看rsync服务是否开启

服务端的配置:
rsync默认的配置文件时不存在的,需要系统管理员新建rsync配置文件
[root@nagios sh]#vim /etc/rsyncd.conf
uid = www     进行备份的用户
gid = www     进行备份的组
user chroot = no   设置为YES必须要以root用户,检测path指定目录
max connections = 200  最大连接数
timeout = 600  允许客户端连接时间
pid file = /var/run/rsyncd.pid   pid文件存放的位置
lock file = /var/run/rsyncd.lock  锁文件存放的位置
log file = /var/log/rsyncd.log    日志文件存放的位置
[www]    认证的模块名
path=/data/www/ 指定参与同步的目录
ignore errors  可以忽略一些无关的IO错误
read only = no  允许可读可写
list = no       不允许列清单
hosts allow = 192.168.1.200  指定客户端同步的IP地址

hosts deny = *
auth users = rsync  指定认证的用户
secrets file = /etc/rsyncd.password   认证的密码文件

chomd -R 777 /data
echo rsync:123456 >/etc/rsyncd.password
chmod 600 /etc/rsyncd.password

一定要修改/etc/xinetd.d/rsync
disable=no
然后重新守护进程xinetd

rsync 也可以已daemon的方式运行,启动方法如下:

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf

netstat -antlp |grep "LISTEN"
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      10144/zabbix_agentd
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      20933/rsync        
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2842/mysqld        
tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      30944/memcached    

客户端的配置


echo 123456 >/etc/rsyncd.password         密码文件只需要密码
chomd 600 /etc/rsyncd.password

客户端同步:


1)rsync -avz --progress --delete /data/backup/www/ rsync@192.168.1.100::www --password-file=/etc/rsyncd.password  
2)rsync -avz --progress --delete rsync@192.168.1.100::www --password-file=/etc/rsyncd.password  /data/backup/www/
标注:在加--delete参数的时候一定要慎重,不了可能会面临失业的严重后果;其次要注意备份方向性,例如1)是把客户端的数据/data/backup/www/备份到192.168.1.100 www模块指定的目录里面,2)正好相反;

rsync -avz --progress --delete --exclude-from=/data/config/exclude-www.txt
/data/backup/www/ rsync@192.168.1.100::www --password-file=/etc/rsyncd.passwrod

--exclude-from=/data/config/exclude-www.txt 选项的意思是排除exclude-www.txt文件里面的目录

[root@nagios sh]# cat /data/config/exclude-www.txt   
/logs/
/p_w_picpaths/

rsync 参数解释
-a --archive 归档模式,表示以递归方式传输文件,并保持文件的属性
-v --verbose 详细模式输出
-z --compress 对备份文件在传输时进行压缩
--progress 显示备份过程
--exclude-from=FILE 排除FILE中指定模式的文件