服务端配置
- 安装rsync,
- debian系列安装apt install rsync
- 红帽系列yum install rsync
- 创建两个不能登录系统的用户rsyncbak,rayncbak1,这里命令不一样多了-M,是因为centos会自动创建用户名家目录
centos # useradd -s /usr/sbin/nologin -M rsyncbak
ubuntu # useradd -s /usr/sbin/nologin rsyncbak1
- 编辑rsync的配置文件,# vi /etc/rsyncd.conf
- 添加以下内容,配置文件包含两个模块,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 最大客户端连接数
- 重启rsync服务器
systemctl restart rsync.service
- 如果有下图代表启动成功,命令
netstat -lntp 查看是否有873端口监听
systemctl | grep rsync 查看rsync状态
7. 加入开机自启动
systemctl enable rsync
- 将path对应的目录拥有者与群组改为配置文件的用户,backup模块的对应的路径是/data/backup,对应的用户是rsyncbak,所以使用这条命令改所有者。如果没改可能会造成目录无法写入文件
chown -R rsyncbak:rsyncbak /data/backup
客户端配置连接
1. 群辉客户端自动备份设定
- 打开套件安装Hyper Backup
- 安装好打开
- 添加一个备策略
- 备份类型–文件夹和套件
- 选文件服务器rsync
- 配置文件服务器参照此图,填入相关的信息,模块因为配置了两个,所以会有两个模块选择,按照自己的模式选择即可,模块配置使用ip白名单的模式,所以不需要填入密码
- 后面的都是按照自己的需求去选择备份的文件夹与套件
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