Rsync服务器Daemon模式设定

严懿 427 2024-05-24

服务端配置

  1. 安装rsync,
  2. debian系列安装apt install rsync
  3. 红帽系列yum install rsync
  4. 创建两个不能登录系统的用户rsyncbak,rayncbak1,这里命令不一样多了-M,是因为centos会自动创建用户名家目录
centos #  useradd -s /usr/sbin/nologin -M rsyncbak   
ubuntu #  useradd -s /usr/sbin/nologin rsyncbak1

  1. 编辑rsync的配置文件,# vi /etc/rsyncd.conf
  2. 添加以下内容,配置文件包含两个模块,backup与backup1模块,保存即可
[backup]
path = /data/backup
hosts allow = 192.168.10.29 , 192.168.10.99 , 192.168.10.80 , 192.168.10.82
hosts deny = *
list = true 
uid = rsyncbak
gid = rsyncbak
read only = false
max connections = 6

[backup1]
path = /data/backup1
hosts allow = 192.168.10.33 , 192.168.10.99
hosts deny = *
list = true 
uid = rsyncbak1
gid = rsyncbak1
read only = false
max connections = 5


配置文件说明

[backup] 代表连接模块的名称,这里我配置两个模块,backup与backup1,有需求可以在添加,名称可以自定义
path 客户端连接到模块要同步到的目录
hosts allow 允许的客户端ip,*号代表全部允许
hosts deny 不允许的客户端ip,*号全部拒绝
list 默认true
uid gid 客户端的用户名与群组名称
read only 是否为只读,因为要同步文件所以配置为false
max connections 最大客户端连接数

  1. 重启rsync服务器
systemctl restart rsync.service

  1. 如果有下图代表启动成功,命令
netstat -lntp  查看是否有873端口监听
systemctl | grep rsync 查看rsync状态

image-1716530701510
7. 加入开机自启动

systemctl enable rsync

  1. 将path对应的目录拥有者与群组改为配置文件的用户,backup模块的对应的路径是/data/backup,对应的用户是rsyncbak,所以使用这条命令改所有者。如果没改可能会造成目录无法写入文件
chown -R rsyncbak:rsyncbak /data/backup 

image-1716529694800

客户端配置连接

1. 群辉客户端自动备份设定

  • 打开套件安装Hyper Backup
  • 安装好打开
  • 添加一个备策略
    • 备份类型–文件夹和套件
    • 选文件服务器rsync
    • 配置文件服务器参照此图,填入相关的信息,模块因为配置了两个,所以会有两个模块选择,按照自己的模式选择即可,模块配置使用ip白名单的模式,所以不需要填入密码
    • image-1716531112844
    • 后面的都是按照自己的需求去选择备份的文件夹与套件

2. 其他Linux主机文件自动备份

  • 只需一条命令,可以根据需要加入定时任务备份即可
rsync -avz  /home/data rsyncbak1@192.168.10.81::backup1 

  • -avz 后面的/home/data是将本机的/home/data目录同步到远程rsync文件服务器,rsyncbak1是在服务端创建用来同步的用户,::backup1是模块的名称

  • 报错解决

    • 如果报错信息为 :rsync: chgrp “/gostfiel/.gost.mmW0m1” (in backup1) failed: Operation not permitted (1)
    • 这个错误信息表明rsync在同步文件时尝试更改文件的组属性,但操作未被允许。虽然文件已经成功同步过去,但由于组属性更改失败,rsync会报告这个错误。
    • 如果不需要同步文件的组属性,可以使用–no-g选项。这样rsync就不会尝试更改文件的组属性,从而避免这个错误:
rsync -avz  --no-g /home/data rsyncbak1@192.168.10.81::backup1

3. 补充

  • 如果需要开启密码验证
    • 服务端端设定
      • 编辑服务端配置文件,模块里面添加这两行,这里我添加在bakcup1模块

      • auth users = rsyncbak1 #用户名
        secrets file = /etc/rsyncd.secrets #密码文件路径

      • 密码文件格式userRsyncbak1:passWord

      • 设置密码文件的权限为600 # chmod 600 /etc/rsyncd.secrets

      • 重启rsync服务

    • 客户端设定
      • 创建密码文件,# touch /home/rsync.pass
      • 编辑文件填入密码,只填密码不要填用户名
      • 设置密码文件的权限为600 # chmod 600 /home/rsync.pass
      • 同步命令
rsync -avz --no-g --password-file=/home/rsync.pass /home/tempsql rsyncbak1@192.168.10.81::backup1