zoukankan      html  css  js  c++  java
  • 集群架构05·备份服务rsync

    初识
    开源,多功能,全量和增量的本地或远程数据同步备份的优秀工具,remote synchronization
    俩服务器定/实时备份cron+rsync,数据同步,全网备份
    一个rsync相当于scp、cp、rm,但又优于他们
    yum install -y rsync
    支持断点续传,限速等特定功能
    优缺点
    优点:增量备份,支持ssh,支持daemon ,集中备份
    缺点:大文件对比时间比较长,大文件有时候可能传输不完整
    一次性拷贝可以直接使用SCP
    工作模式
    1、本地模式:cp,rm
    2、通道模式:ssh加密
    3、daemon:非加密,一般不需要都是内网
    二三模式不能混合使用
    参数
    -avz 基本可以满足需求
    -v:verbose详细模式输出
    -z:zip传输时压缩来提高传输效率
    -a:archive归档模式,等于rtopgDl
    -t:time保持文件时间信息
    -o:owner保持文件属组信息
    -p:保持文件权限
    -g:group保持文件所属组
    -l:link保持文件软链接
    -p:process显示同步过程和进度信息
    --delete 按照源端来删除目的端的文件
    --exclude:排除不需要传输的文件
    --bwlimit=rate 备份带宽,别把马路占满,注意备份时间
    -e, --rsh=command 指定使用rsh、ssh方式进行数据同步
    实践
    1、将/server/ssh目录里的所有的文件同步至/back 目录(不包含/server/ssh本身)
    [root@localhost ~]# rsync -azv /server/ssh/ /back/
    2、将服务器的test文件夹和内部文件都通过ssh隧道复制到备份服务器中
    [root@moban ~]# rsync -avz /root/test -e ’ssh -p 22‘ root@192.168.2.40:/root/
    root@moban ~]# rsync -avz -e ssh root@192.168.2.40:/root/666 /root/
    和scp命令类似,既可以上传,也可以下载,只需要调整位置即可,通过ssh免密配置,定时任务直接备份
    主配置文件
    /etc/rsyncd.conf
    #rsync_config_start
    #created by oldboy 18:00 2016/4/20
    ##rsyncd.conf start##
    uid = rsync #用户uid 虚拟用户
    gid = rsync #用户组gid
    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 #日志文件
    [backup] #模块名称
    path = /backup #服务器提供访问的目录
    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
    #rsync_ config_end
    实践是检验真理的唯一标准
    服务器端 :根据服务主配置文件来做配置
    环境
    [root@NFS_22 ~]# cat /etc/redhat-release
    CentOS release 6.5 (Final)
    [root@NFS_22 ~]# uname -a
    Linux NFS_22 2.6.32-431.el6.i686 #1 SMP Fri Nov 22 00:26:36 UTC 2013 i686 i686 i386 GNU/Linux
    [root@NFS_22 ~]# rsync --version
    rsync version 3.0.6 protocol version 30
    1、建立备份目录/backup,要转移备份先把东西整理到一个地方,专门用来拉取文件的仓库
    [root@backup ~]# mkdir /backup
    2、添加用户,初识尝试启动服务,返回这说明我们要配置这个文件
    [root@nfs ~]# id rsync #没有该用户
    id: rsync: No such user
    [root@nfs ~]# useradd rsync -s /sbin/nologin -M #nologin #不登录是虚拟用户,-M不创建家目录
    [root@nfs ~]# tail -1 /etc/passwd
    rsync​​501:501::/home/rsync:/sbin/nologin
    [root@nfs ~]# rsync --daemon #为备份服务器创建配置文件,起初没有配置文件,下面要增加配置
    Failed to parse config file: /etc/rsyncd.conf
    3、配置服务主配置文件,查看服务是否启动成功
    [root@nfs ~]# vim /etc/rsyncd.conf
    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
    [backup]
    path = /backup
    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
    [root@nfs ~]# rsync --daemon #配置文件没有问题,不会报错,正常启动
    [root@nfs ~]# ps -ef |grep rsync|grep -v "grep"
    root 2077 1 0 04:17 ? 00:00:00 rsync --daemon
    4、创建存密码的文件,为了安全去修改文件权限,修改备份文件的所属者和所属组
    [root@nfs ~]# echo "rsync_backup:oldboy" > /etc/rsync.password
    [root@nfs ~]# ll /etc/rsync.password
    -rw-r--r--. 1 root root 20 Oct 11 04:33 /etc/rsync.password
    [root@nfs ~]# chmod 600 /etc/rsync.password
    [root@nfs ~]# ll /etc/rsync.password
    -rw-------. 1 root root 20 Oct 11 04:33 /etc/rsync.password
    [root@nfs ~]# chown -R rsync.rsync /backup/
    5、根据rsync服务的端口873来找服务开没开,两种方法
    方式一:lsof
    [root@nfs ~]# lsof -i :873
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    rsync 2077 root 3u IPv4 14793 0t0 TCP *:rsync (LISTEN)
    rsync 2077 root 5u IPv6 14794 0t0 TCP :rsync (LISTEN)
    方式二:netstat
    [root@nfs ~]# netstat -lntup |grep 873
    tcp 0 0 0.0.0.0:873 0.0.0.0: LISTEN 2077/rsync
    tcp 0 0 :::873 :::* LISTEN 2077/rsync
    6、将进程加入开机自启动文件rc.local当中
    开机自启动 chkconfig rsync on
    [root@nfs ~]# echo "/usr/bin/rsync --daemon" >>/etc/rc.local
    [root@nfs ~]# tail -1 /etc/rc.local
    /usr/bin/rsync --daemon
    7、修改配置文件,先杀死服务,然后在启动文件
    pkill rsync
    lsof -I :873
    rsync --daemon
    8、多模块配置,增加一个模块,新建目录,修改目录权限
    客户端
    1、存在rsync服务
    [root@NFS_22 ~]# rpm -qa rsync
    rsync-3.0.6-9.el6_4.1.i686
    2、配置虚拟用户的密码
    echo "oldboy" >/etc/rsync.password
    chmod 600 /etc/rsync.password
    mkdir -p /backup
    功能实现:现在客户端把文件推到服务器端,在客户端操作
    方式一:
    [root@NFS_22 backup]# rsync -avz /backup/ rsync_backup@192.168.2.11::backup/ --password-file=/etc/rsync.password
    方式二:
    [root@NFS_22 backup]# rsync -avz /backup/ rsync://rsync_backup@172.16.1.11/backup --password-file=/etc/rsync.password
    功能实现:拉取文件,就是将目的地和源地址反过来就是从服务器端拉取文件
    [root@NFS_22 backup]# rsync -avz rsync_backup@192.168.2.11::backup /backup/ --password-file=/etc/rsync.password
    故障总结,模拟故障来增加经验
    服务端备份目录没有
    备份目录权限不够
    虚拟用户密码不正确,多个空格,多个换行符,都有可能导致密码不正确
    防火墙开启,导致失败
    排错
    查看错误提示
    查看日志 tail -1 /var/log/rsync.log
    仔细排查部署过程
    客户端拍错,密码文件,测试端口
    排除推送:
    排除单个文件 --exclude=a
    排除多个文件
    --exclude={a,b}
    --exclude={a..z}
    --exclude-from=paichu.log
    无差异同步:慎用,没有后悔药
    --delete A B 按照A来无差异同步B,如果B有多余文件则删除,缺少文件则复制添加
    rsync -avz --delete /backup/ rsync_backup@192.168.2.11::backup --password-file=/etc/rsync.password
    实践
    每天晚上00点整在Web服务器A上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留
    (备份思路可以是先在本地按日期打包,然后再利用rsync推到备份服务器上)。
    具体要求如下:
    1)Web服务器A和备份服务器B的备份目录必须都为/backup。
    2)Web服务器站点目录假定为(/var/www/html)。
    3)Web服务器本地仅保留7天内的备份。
    4)备份服务器上检查备份结果是否正常,并将每天的备份结果发给管理员信箱(选做)。
    5)备份服务器上每周六的数据都保留,其他备份仅保留180天备份(选做)。
    NFSserver的/var/www/html打包压缩同步到/backup目录,每次备份的打包备份的文件只保留七天:
    tar -zchf /backup/html.$(date +%F%w -d '-1day').tar.gz /var/www/html/

  • 相关阅读:
    121. Best Time to Buy and Sell Stock
    70. Climbing Stairs
    647. Palindromic Substrings
    609. Find Duplicate File in System
    583. Delete Operation for Two Strings
    556 Next Greater Element III
    553. Optimal Division
    539. Minimum Time Difference
    537. Complex Number Multiplication
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/unicornam/p/11662178.html
Copyright © 2011-2022 走看看