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/

  • 相关阅读:
    2019-2020-2 网络对抗技术 20175318 Exp0 kali Linux系统的安装(雾
    手动编译 TCP BBR v2 Alpha/Preview 内核
    Adobe Flash Player解除限制版
    ABBYY FineReader 15.0.18.1494 Corporate Multilingual破解
    易语言5.9精简学习增强版
    Debian9 快速开启 TCP BBR 实现高效单边加速
    ucosii-2(选做)
    Ubuntu 18.04/18.10快速开启Google BBR的方法
    基于 Nginx 的 v2+websocket+tls 域名伪装
    Google TCP升级版加速:BBR 2.0对比BBR Plus
  • 原文地址:https://www.cnblogs.com/unicornam/p/11662178.html
Copyright © 2011-2022 走看看