一,搭建backup服务器之rsync服务介绍
一.搭建备份服务器(rsync)
a.服务介绍
远程数据同步工具
-
- 开源,快速 ,多功能,可实现全量及增量的本地或远程数据同步的优秀工具
- 增量:差异备份
- 全量:全部备份
rsync Remote synchronization
-
- 功能1:本地连个目录之间拷贝 cp
- 功能2:两台主机之间互相拷贝 scp 全量以及增量的拷贝
- 功能3:删除功能 rm
既可以同步内容,也可以同步属性
-
- centos5 rsync2.x 所有文件做比对,然后同步
- centos6 rsync3.x 一边比对,一边同步
b.特性介绍
- 拷贝特殊文件如链接文件,设备等
- 可以排除指定文件或则目录同步的功能,相当于tar打包命令的排除功能
- 可以做到保持原文件或则目录的权限,时间,软硬链接,属主,组等所有属性均不改变-p
- 可以实现增量同步,即只同步发生变化的数据,因此数据传输效率很高,tar -N
- 可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)
- 可以通过socker(进程方式)传输文件和数据(服务端和客户端)
- 支持匿名或认证(无须系统用户)的进程模式传输,可实现方便安全的进行数据的备份及镜像
c.企业工作场景
定时备份:
- cron+rsync
- rsync
实时备份:
- rersync+rsync
- inotify+rsync
- lrsyncd+rsync
local cp,rm
- rsync -avzrtopgPDI --delete /etc/hosts /tmp
ssh (通道模式)
- rsync -avz /etc/hosts -e 'ssh -p 22' root@192.168.1.10:/mnt
- pull
- push
daemon(进程)873端口
内网不需要,加密性能有损失
vpn+vpn(pptp,openvpn,ipsec)
- pull
- push
a:所有
v:详细模式输出,传输时的进度等信息
z:传输时进行压缩
r:递归
t:保持稳健时间信息
o:保持文件属主信息
p:保持文件权限
g:保持文件属组信息
P:显示同步过程以及传输时的进度
D:保持设备文件信息
I:--link保留软连接
e: --rsh=command 使用的信道协议,指定替代rsh的shell程序。例如:ssh
--exclude=PATTERN 指定排除不需要传输的文件模式(和tar参数一样)
--exclude-from=file(文件名所在的目录文件)(和tar参数一样)
--delete 让目标目录SRC和源目录数据DST一致
- 考虑限速
- 考虑业务低估
客户端同步服务端(--exclude=PATTERN ,--exclude-from=file)排除
- rsync -avz --exclude=stu001 /backup/ rsync://rsync_backup@192.168.1.9/backup/ --password-file=/etc/rsync.password 排除单个
- rsync -avz --exclude={stu001,stu002} /backup/ rsync://rsync_backup@192.168.1.9/backup/ --password-file=/etc/rsync.password 排除多个
- rsync -avz --exclude={stu001..stu009} /backup/ rsync://rsync_backup@192.168.1.9/backup/ --password-file=/etc/rsync.password 排除一批
- rsync -avz --exclude-from=stu001 /backup/ rsync://rsync_backup@192.168.1.9/backup/ --password-file=/etc/rsync.password 文件所在目录(这里指的是/backup)
服务端同步客户端
- rsync -avz rsync_backup@192.168.1.9/backup/ /backup/ --password-file=/etc/rsync.password
bwlimit(限速)
- rsync -avz --bwlimit=10k rsync_backup@192.168.1.9/backup/ /backup/ --password-file=/etc/rsync.password
--partial(断点续传)
- rsync -avz -p --bwlimit=10k rsync_backup@192.168.1.9/backup/ /backup/ --password-file=/etc/rsync.password
d.搭建过程
服务端
1.查看rsync安装包
-
- rpm -qa rsync
2.添加rsync服务的用户,管理本地目录的
-
- useradd -s /sbin/nologin -M rsync
- id rsync
3.生成rsync.conf配置文件
-
- vi /etc/ysync.conf放入事先准备得配置,man rsync。conf去查
4.根据rsyncd.conf的auth user配置账号,远程连接的,并且根据secrets file参数生成密码文件
-
- echo “rsync_backup:oldboy” >/etc/rsync.password
- cat /etc/rsync.password
5.为密码文件配置权限
-
- chmod 600 /etc/rsync.password
- ls -l /etc/rsync.password
6.创建共享的目录并授权服务管理
-
- mkdir /backup -p
- chown rsync.rsync /backup
- 如果没有/backup 目录,就会chdir failed
7.启动rsync服务并检查
-
- rsync --daemon
- ps -ef |grep rsync |grep -v grep
- lsof -i:873
8.加入开机自启动
- echo "/usr/bin/rsync --daemon" >> /etc/rc.local
- tail -l /etc/rc.local
客户端
1.生成连接服务器需要的密码文件
-
- echo "oldboy" > /etc/rsync.password
- cat /etc/rsync.password
2.为密码文件配置权限
-
- chmod 600 /etc/rsync.password
- ls -l /etc/rsync.password
3.同步(推)
-
- rsync -avz /backup/ rsync_backup@192.168.1.9::backup/ --password-file=/etc/rsync.password
- rsync -avz /backup/ rsync://rsync_backup@192.168.1.9/backup/ --password-file=/etc/rsync.password
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
fake super = yes #新版本要添加这个
[backup]
path = /backup
ignore errors
read only = false
list = false
hosts allow = 192.168.1.1/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
e.多模块实战
只要把服务端配置文件里目录和路径复制出来增加在下面就可以了(记得新建的目录要chown rsync.rsync授权一下),如果还要达到不同目录对应不同密码就要写在模块里,因为写在上面的为全局
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
fake super = yes #新版本要添加这个
ignore errors
read only = false
list = false
hosts allow = 192.168.1.1/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup
[oldboy]
path =/oldboy
f.Rsync优缺点
优点:
1.增量备份,支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物)
2.远程shell通道模式还可以加密(ssh)传输,socket(daemon)需要加密传输,可以利用VPN服务或ipsec服务
缺点:
1.大量小文件同步的时候,比对时间较长,有的时候,rsync进程可能会停止
2.同步大文件,10G这样的大文件也会有问题,中断,未完整同步前,是隐藏文件,可一次性远程拷贝可以用scp