3、搭建 rsync备份服务器
yum install rsync -y
rsync(873):数据同步,把一台服务器上的数据以何种权限同步到另一台服务器上,是linux
系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,
或者与其他SSH;sync主机同步可以全量和增量的本地或远程数据同步;rsync守护进程(daemon)的方式传输数据,监听的是rsync 837的端口;
3.1、rsync的特性:
3.2、rsync的拷贝:
3.3、解决ssh传输慢的问题:
在远程服务器上进行/etc/ssh/sshd_config的设置:
3.4、rsync,local模式:
rsync -avz /etc/hosts /tmp/ :普通备份(源目录和目标目录进行对比,内容相同的部分不拷贝到目标目录。
内容不同的部分拷贝到目标目录,目标目录存在而源目录不存在的内容会被保留。目标目录的内容是源目录和原目标目录内容的并集(更新)。
类似于\cp -av /etc/hosts /tmp:将源目录数据拷贝到目标目录,内容名称相同覆盖,不相同的复制。目标目录和源目录内容名称不同的
保留(更新)。)
rsync -avz --delete /tmp/ /mnt/ :同步备份(源目录和目标目录进行对比,内容相同的部分不拷贝到目标目录,内容不同的部分拷
贝到目标目录。目标目录存在而源目录不存在的内容不会被保留。目标目录和源目录内容持一致(同步)。)
特别提示:
源目录和目标目录内容进行对比的方法有:通过文件或目录的名称、修改时间、大小来判断是不是同一个内容。
3.5、rsyncssh远程模式:
rsync -avz /etc -e 'ssh -p 22' root@172.16.1.31:/tmp #也可以使用--delete:用法和本地local传输相同
3.6、daemon模式:
3.6.1、rsync参数配置:
修改/etc/rsyncd.conf配置文件:
uid = rsync #同步文件的属主 使用rsync用户访问共享目录
gid = rsync #同步文件的属组
use chroot = no #安全相关的设置,一般不使用chroot
max connections = 200 #最大连接数
timout=300 #超时参数(单位/秒)
pid file = /var/run/rsyncd.pid #进程号对应的文件
lock file = /var/run/rsync.lock #锁文件,防止文件不一致
log file = /var/log/rsyncd.log #日志文件
[backup] #这里是认证的模块名,在client端需要指定
path = /backup #服务器提供的共享目录
comment = backup #描述信息
ignore errors #可以忽略一些无关的IO错误
read only = false #可写
list = false #不允许列文件 相当于ls
hosts allow=172.16.1.0/24 #允许的网段
#hosts deny=0.0.0.0/32 #拒绝的网段
auth users = rsync_backup #连接的系统中不存在的虚拟用户,对应的是uid中用户,这样同步的时候比较安全
secrets file = /etc/rsync.password #虚拟用户的用户和密码文件
3.6.2、在系统中添加虚拟用户:
useradd rsync -Ms /sbin/nologin
[root@backup /]# tail -1 /etc/passwd
rsync:x:501:501::/home/rsync:/sbin/nologin
3.6.3、创建共享目录:
mkdir -p /backup
chown -R rsync:rsync /backup/
[root@backup /]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 4096 10月 7 17:12 /backup/
3.6.4、创建密码文件:
[root@backup /]# touch /etc/rsync.password
[root@backup /]# chmod 700 /etc/rsync.password
[root@backup /]# ls -l /etc/rsync.password
-rwx------ 1 root root 0 10月 7 17:22 /etc/rsync.password
[root@backup /]# vim /etc/rsync.password
rsync_backup:123
3.6.5、启动rsync服务:
(rsync服务在root用户下运行,只是对同步文件的权限做了更改)
3.6.5.1、加入开机自启动:
echo ‘/usr/bin/rsync --daemon’>>/etc/rc.local
tail -1 /etc/rc.local
rsync --daemon
ps -ef |grep "rsync" |grep -v "rsync"
root 2363 1 0 17:05 ? 00:00:00 rsync --daemon
3.6.5.2、修改了 /etc/rsyncd.conf配置文件中的内容后要重启:
pkill rsync #杀死了rsync进程
lsof -i :873 #产看进程是否被杀死
rsync --daemon#启动rsync服务
lsof -i :873
3.6.6、客户端配置:
mkdir /etc/rsync.password
touch '123' >>/etc/rsync.password
chmod 700 /etc/rsync.password
[root@nfs01 ~]# ls -l /etc/rsync.password
-rwx------ 1 root root 4 10月 7 17:54 /etc/rsync.password
3.6.7、rsync参数补充:
--delete:无差异同步,服务端 和客户端保持一致,谨慎使用该参数
举例:视频网站,视频推送到服务器上发布,本地/backup只有当天发布的内容,服务器上有以前的所有文件,使用--delete参数进行数据同步
时会删除服务器duan以前的所有内容,只有当天发布的内容了 。
--exclude:排除文件
--exclude=a:单个排除
--exclude={a,b,c}:多个排除
--exclude={a..b}:连续排除
--bwlimit=KBPS:限速
--bwlimit=10(kB/s)
-P:断点续传
-avzP
3.6.7.1、push同步(客户端-服务端):
服务端中配置的模块名,对应的是服务端的共享地址,也可以在后面加目录,比如backup/a/,这a目录可以不存在,会自动创建;
rsync -avz /backup rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
rsync -avz --bwlimit=20 /backup rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
3.6.7.2、pull同步(服务端-客户端)
服务端中配置的模块名,对应的是服务端的共享地址,也可以在后面加目录,比如backup/a,backup/a表示拉整个目录,backup/a/表示拉目录中的内容,a目录必须存在,且权限和上层目录一致;
rsync -avz rsync_backup@172.16.1.41::backup/ /backup/ --password-file=/etc/rsync.password
rsync -avz --exclude={a,lc3.pdf,lc4.pdf} rsync_backup@172.16.1.41::backup/ /backup/ --password-file=/etc/rsync.password
3.7、错误解析:
3.7.1、@error:invalid uid rsync
用户不存在,需要创建用户 useradd -Ms rsync
3.7.2、@error: auth failed on module backup
rsync服务器端 /etc/rsync.password配置文件用户密码和/etc/rsyncd.conf配置文中的非系统内虚拟账号不一致,或者是客户端密码文件错误
3.7.3、@error:chdir faild
rsync服务器端共享目录权限不够
3.8、多模块设置:
vim /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timout=300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup
comment = backup
[backup2]
path = /backup2
comment = backup2
此种多模块配置设置的是一个独立于系统之外的虚拟用户对应不同的模块,其余的配置都放在了公共的部分,如果有需要可以从公共
的部分拿出来进行单独的配置,设置不同的独立于系统之外的虚拟账号,需要在/etc/rsync.password配置文件中添加相应的用户和密码即可。
3.9、总结:
3.9.1、rsync共有三种模式:
local模式
ssh通道模式(ssh会自动加密)
daemon模式
内网不需要加密,加密数据会有损失
rsync+vpn(pptp(简单易懂),openvpn,ipsec)
3.9.2、rsync的优缺点:
优点:
增量备份和无差异备份(对比文件,相同的文件不备份,速度快),支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物);
远程ssh通道模式还可以加密(ssh)传输,socket(daemon)需要假币传输,可以利用vpn服务或是ipsec服务;
缺点:
大量小文件同步的时候,比对时间较长,有时候,rsync进程可能会停止;
同步大文件,10G这样的大文件时也会有这样的问题,会中断,未完整同步前,是隐藏文件,可以通过续传实现传输;
一次性远程拷贝可以使用scp;