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中指定模式的文件