zoukankan      html  css  js  c++  java
  • RSYNC03-搭建rsync服务器,不使用系统用户实现数据备份

    1,为什要搭建rsync服务器:

    • 使用rsync命令备份需要输入用户密码;
    • 使用ssh免秘钥无交互备份,需要生成密码文件并发送给客户端,且需要使用系统用户登录客户端;

    结论:无论使用rsync命令,还是使用ssh免秘钥无交互备份,都需要使用系统用户,这样就会不安全;解决办法:搭建rsync服务器,不使用系统用户,实现数据备份。

    2,方案说明:

    • 需要自己创建自己的配置文件: /etc/rsyncd.conf
    • 定义备份帐户
    • rsync 以daemon方式运行

    3,创建配置文件,默认配置文件不存在,需要自己创建

    [root@cdncenter scripts]# cat /etc/rsyncd.conf 
    uid = root
    gid = root
    use chroot = yes
    max connections = 10
    strict modes =yes
    port = 873
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    log file = /var/log/rsyncd.log
    motd file=/etc/rsyncd.motd
    
    [rhel5_warehouse]
    path =  /mpeg/mirrors/yumwarehouse/rhel5/
    ignore errors
    read only = yes
    list = no
    hosts allow = 172.1.1.1/255.0.0.0
    hosts deny = 0.0.0.0/0
    auth users = root
    secrets file = /etc/rsync.pas

    4,配置文件详解

    • 配置文件/etc/rsyncd.conf,整体分为两个部分:全局参数和模块参数
    1. 全局参数 :对于rsync 服务器生效。如果模块参数和全局参数冲突,针对冲突的模块,模块参数生效(模块参数优先级高于全局参数)
    2. 模块参数: 定义rsync 输出的目录的参数。
    • 参数说明:
    配置项 说明 配置方法 参数类型
    uid 文件传输过程中,守护进程的用户身份。 运行进程的身份:一般情况下,采用默认值:root 全局参数
    gid 文件传输过程中,守护进程的组身份。 运行进程的组:一般情况下,采用默认值:root 全局参数
    address 监听IP地址 请根据实际情况填写 全局参数
    port Rsync的服务端口 一般情况下,采用默认值:873 全局参数
    use chroot 锁定家目录。rsync被黑了,黑客无法在rsync运行的家目录之外创建文件,该选项设置为yes 该选项设置为yes 全局参数
    max connections 指定允许的最大并发客户端连接数,如果配置为“0”,则表示没有限制。 请根据实际情况配置,如“4” 全局参数
    strict modes 是否检查密码文件的权限:
    yes:则密码文件只能被Rsync服务器运行身份的用户访问,其他任何用户不可以访问该文件
    no:其他用户身份能够访问
    请根据实际情况填写 全局参数
    pid file pid文件。存放进程ID。自动生成,以便于使用脚本终止进程 一般情况下,采用默认值“/var/run/rsyncd.pid” 全局参数
    lock file 指定支持max connections参数的锁文件 一般情况下,采用默认值“/var/run/rsync.lock” 全局参数
    log file 指定使用独立的日志文件的位置 举例:/var/log/rsyncd.log 全局参数
    motd file 客户端登录后的弹出的信息。需要创建。 举例:/etc/rsyncd.motd  
    [rhel_warehouse] 共享模块名,自定义 客户端配置时需使用到 共享模块名
    path 供备份的路径 请根据实际情况填写 模块参数
    comment 描述 请根据实际情况填写 模块参数
    ignore errors 可以忽略一些无关的IO错误 不需配置 模块参数
    read only 以只读的方式 提供备份,即允许客户端下行同步,不允许上传 建议配置为:yes 模块参数
    list 是否允许查看模块信息 建议配置为:yes 模块参数
    hosts allow 允许连接该模块的客户端IP或者网段 单个IP地址,例如:192.167.0.1
    整个网段,例如:192.168.0.0/24,或者是192.168.0.0/255.255.255.0
    “*”则表示所有,默认是允许所有主机连接。
    多个IP或网段中间用英文的”逗号”或者”空格”隔开
    模块参数
    hosts deny 指定不允许连接Rsync服务器的机器 请根据实际情况配置 模块参数
    auth users Rsync认证的用户名,指定备份的用户,和系统用户无关 一般情况下,采用默认值:root。必须和etc/rsync.pas文件中配置的认证用户保持一致 模块参数
    secrets file 指点存放用户 和密码文件。格式: 用户名:密码 请根据实际配置创建认证用户和密码的文件。此处创建的是etc/rsync.pas,所以应当配置etc/rsync.pas 模块参数
    • 创建提示信息文件
    [root@xuegod63 ~]# echo "welcome to backup server"  > /etc/rsyncd.motd
    • 创建密码文件,修改密码文件权限(重要)
    #vi /etc/rsync.pas                           #按“i”键添加如下内容,为Rsync认证添加用户和密码。
    root:coship
    #chmod 600 /etc/rsync.pas                    #rsync.pas必须赋予600或者700权限,即仅文件属主有读写权限,而所属组和其他用户无任何权限,否则启动会报错。

    权限设置不对的话身份验证会失败,会弹以下出错信息,当然,输错密码后,也会弹这个信息:

    [root@Usvn~]# rsync -avz root@10.80.0.1::rhel5_warehouse /tmp/
    
    welcome to backup server
    
    Password: 
    
    @ERROR: auth failed on module wwwroot
    
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
    • 启动rsync服务(两种方式)
    1. rsync –daemon (rsync –daemon –help 查看帮助信息)
    2. 使用xinetd管理rsync。修改/etc/xinetd.d/rsync 配置文件,将disable = yes 改为 disable = no ,然后重启xinetd服务(service xinetd restart)
    • 测试备份:

       语法:rsync 选项 用户名@备份源服务器IP::共享模块名 目标目录

    [root@storeMS tmp]# rsync -avz backup@10.80.0.1::rhel6_warehouse /tmp/rhel6/
    welcome to backup server
    
    Password:                                             #此处需要输入密码
    receiving file list ... done
    ./
    PyYAML-3.10-3.1.el6.x86_64.rpm
    libyaml-0.1.3-4.el6_6.x86_64.rpm
    m2crypto-0.20.2-9.el6.x86_64.rpm
    openpgm-5.1.118-3.el6.x86_64.rpm
    • 实现无交互脚本,备份数据-两种方法
    1. 声明RSYNC_PAASSWORD变量
    2. 从本地文件读取密码

    脚本1:

    [root@storeMS tmp]# cat time.sh 
    #!/bin/bash
    
    export RSYNC_PASSWORD=coship
    rsync -avz backup@10.80.0.1::rhel6_warehouse /tmp/rhel6/

    脚本2:

    [root@storeMS tmp]# echo "coship" >/etc/rsync.pas
    [root@storeMS tmp]# chmod 600 /etc/rsync.pas                  #此步骤非常重要,否则会鉴权失败
    [root@storeMS tmp]# cat time2.sh 
    #!/bin/sh
    
    rsync -avz --delete backup@10.80.0.1::rhel6_warehouse /tmp/rhel6/ --password-file=/etc/rsync.pas

    备注:添加防火墙规则:

    [root@xuegod63 ~]# iptables -A INPUT -p tcp --dport 873 -j ACCEPT

     

     

    ---未完待续

  • 相关阅读:
    IntelliJ IDEA 最新注册码
    tidyverse|数据分析常规操作-分组汇总(sumamrise+group_by)
    ComplexHeatmap|根据excel表绘制突变景观图(oncoplot)
    Tidyverse| XX_join :多个数据表(文件)之间的各种连接
    LDheatmap | SNP连锁不平衡图(LD)可视化,自己数据实现版!
    Tidyverse|数据列的分分合合,爱恨情仇
    R-ggpmisc|回归曲线添加回归方程,R2,方差表,香不香?
    R-rbind.fill|列数不一致的多个数据集“智能”合并,Get!
    R|tableone 快速绘制文章“表一”-基线特征三线表
    R|生存分析
  • 原文地址:https://www.cnblogs.com/snailshadow/p/8128061.html
Copyright © 2011-2022 走看看