欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Linux---rsync备份服务详细教程(内容包含备份脚本,校验,免密操作等)

Linux---rsync备份服务详细教程(内容包含备份脚本,校验,免密操作等)

2025/11/25 6:02:01 来源:https://blog.csdn.net/xhy020917/article/details/144680884  浏览:    关键词:Linux---rsync备份服务详细教程(内容包含备份脚本,校验,免密操作等)

进行下面操作之前请确认是否安装rsync,如果没有安装执行下面命令安装

yum -y install rsync
或者
apt -y install rsync

以下操作我使用了两台服务器,一台提供rsync服务,一台为客户机

rsync服务ip:192.168.233.102

客户机ip:192.168.233.101

  • rsync配置解释

    fake super =yes
    uid = rsync
    gid = rsync
    use chroot = no
    max connections = 2000
    timeout = 600
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    log file = /var/log/rsyncd.log
    ignore errors
    read only = false
    list = false
    hosts allow = 192.168.233.101/24 #测试的客户机IP
    #hosts deny = 0.0.0.0/32 #这个是禁止全部网段访问
    auth users = rsync_data
    secrets file = /etc/rsync.password
    #####################################
    [data]
    comment = www by old0boy 14:18 2022-1-13
    path = /home/data
    
    • fake super = yes:这个选项允许rsync服务以非root用户身份运行时,仍然拥有某些超级用户权限。这通常用于安全原因,避免直接使用root账户。
    • uid = rsync:指定rsync服务运行时的用户ID,这里设置为rsync用户。
    • gid = rsync:指定rsync服务运行时的组ID,这里设置为rsync组。
    • use chroot = no:不使用chroot环境,即不将rsync模块目录更改为根目录。
    • max connections = 2000:允许的最大并发连接数设置为2000。
    • timeout = 600:超时时间设置为600秒,即如果在600秒内没有数据传输,连接将被关闭。
    • pid file = /var/run/rsyncd.pid:rsync服务的进程ID文件路径。
    • lock file = /var/run/rsync.lock:rsync服务的锁文件路径,用于确保服务不会重复启动。
    • log file = /var/log/rsyncd.log:rsync服务的日志文件路径。
    • ignore errors:忽略I/O错误。
    • read only = false:设置rsync模块为可写。
    • list = false:不允许列出模块中的文件列表。
    • #hosts allow = 10.0.0.0/24:这一行被注释掉了,如果取消注释,它将允许10.0.0.0/24网段的IP地址访问。
    • #hosts deny = 0.0.0.0/32:这一行也被注释掉了,如果取消注释,它将拒绝所有IP地址访问。
    • auth users = rsync_backup:指定认证用户为rsync_backup。
    • secrets file = /etc/rsync.password:存储认证用户密码的文件路径。

    接下来的部分定义了一个名为data的rsync模块:

    • [data]:模块名称。
      • comment = www by old0boy 14:18 2012-1-13:模块的注释信息。
      • path = data:模块对应的本地路径,即rsync服务将同步或传输的目录。
  • 启动服务rsync服务

    systemctl enable rsyncd 
    systemctl start rsyncd
    
  • 检查进程 ps -ef |grep rsync

    ps -ef |grep rsync
    
  • 检查端口

    ss -lntup |grep rsync
    
  • 添加虚拟用户

    useradd  -s /sbin/nologin -M   rsync
    
  • 创建密码文件并且分配权限

    echo 'rsync_backup:123' >/etc/rsync.password && chmod 600 /etc/rsync.password
    
  • 创建目录并将目录分配用户组

    mkdir -p /home/data && chown -R rsync:rsync /home/data
    
  • 测试

    下面命令在一台新的服务器执行

    #创建a.txt文件
    #注意192.168.233.102为提供rsync服务的IP地址
    touch a.txt && rsync -avz a.txt rsync_data@192.168.233.102::data 
    
  • 注意:在测试的时候请保证两台服务器可以ping通,还有防火墙打开873端口

  • 其它操作

    • 免密备份

      以下操作在客户机进行

      1. 创建密码文件

        echo '12345' >/etc/rsync.client
        
      2. 修改权限

        chmod 600 /etc/rsync.client
        
      3. 测试

        rsync -avz a.txt rsync_data@192.168.233.102::data  --password-file=/etc/rsync.client
        
    • 文件校验

      md5usm data.txt >etc.all.md5 #将上生的md5指纹保存在etc.all.md5文件中
      md5usm -c etc.all.md5 #查看校验结果。注意:只要修改data.txt文件内容校验就会失败
      md5usm --quiet -c etc.all.md5 #只查看失败的校验结果
      
    • 创建备份脚本

      特别注意:脚本创建前请确认备份路径文件、推送用户、ip、密码是否正确

      cat <<EOF>> rsync.sh
      ip=`hostname -I |awk '{print $1}'` #获取本地服务器IP
      time=`date +%F_%H-%M-%S_%w` #获取时间
      data_file=data-${time}.tar.gz #备份文件命名(根据自己需求修改)
      path_url=/home/data.txt #备份路径或者要备份的文件
      tar zcf  ${data_file} ${path_url} #压缩
      rsync -avz ${data_file} rsync_data@192.168.233.102::data --password-file=/etc/rsync.client #推送备份
      rm -rf ${data_file} #删除备份
      EOF
      

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词