一,搭建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

 

 

 

 

 

posted @ 2019-02-15 19:36  人生苦短我学python  阅读(503)  评论(0编辑  收藏  举报