rsync搭建

一:什么是rsync
rsync是一个开源的备份服务器,可以在不同主机之间实现同步,可以实现本地和异地配置,可以实现数据的全量和增量备份

二:rsync的工作模式
2.1 本地模式
在本地将一个文件传到本地其他目录下,类似于cp命令

[root@backup-41 backup]# rsync -azvP /etc/hosts /opt/

2.2 远程模式
将文件传到远程服务器上的目录下.类似于scp
和scp对比的话,如果文件已经存在,rsync使用的是增量备份

[root@backup-41 opt]# rsync -azvP /etc/hosts 172.16.1.31:/opt/

2.3 服务模式(守护进程模式)
2.3.1 安装rsync服务

[root@backup-41 ~]# yum install rsync.x86_64 -y

2.3.2 rsync配置文件

查看rsync的主要配置文件目录
[root@backup-41 etc]# rpm -qc rsync 
/etc/rsyncd.conf
/etc/sysconfig/rsyncd

养成好习惯,先备份系统默认的配置文件,在创建自己的配置文库
[root@backup-41 etc]# cp /etc/rsyncd.conf{,.bak}
[root@backup-41 etc]# vim rsyncd.conf
uid = www                       
gid = www      
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup

secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#########################
[backup]
comment = welcome to oldboyedu backup!
path = /backup

[data]
path = /data

2.3.3 创建www用户

先创建www组
[root@backup-41 etc]# groupadd -g 666 www

因为www用户只是为了运行程序的,不做登录,所以创建傀儡用户
[root@backup-41 etc]# useradd -M -s /sbin/nologin -u 666 -g 666 www

2.3.4 创建rsync_backup这个虚拟用户的认证密码
虚拟用户和目录都在rsync的配置文件里有定义


image.png
创建密码认证文件
[root@backup-41 etc]# vim /etc/rsync.passwd
rsync_backup:cxy123456

修改认证文件权限,权限过大会报错
[root@backup-41 etc]# chmod 600 rsync.passwd 

2.3.4 启动服务

[root@backup-41 etc]# systemctl restart rsyncd
[root@backup-41 etc]# systemctl enable rsyncd

2.3.5 测试
在nfs-31这个主机上使用rsync同步配置数据到rsync服务器

[root@nfs-31 /]# rsync -azvP /opt/test_dir/ rsync_backup@172.16.1.41::backup
Password: 
rsync: mkstemp ".test_9.txt.UQFsxp" (in backup) failed: Permission denied (13)
发现报错了,提示权限拒绝
排查:发现backup服务器上创建的/backup目录属主不对,修改成www
[root@backup-41 etc]# chown www:www /backup/
[root@backup-41 etc]# chown www:www /data/

再次测试成功,在backup服务器上查看,文件已经同步成功
[root@backup-41 backup]# ls
1G.txt       test_1.txt  test_3.txt  test_5.txt  test_7.txt  test_9.txt
test_10.txt  test_2.txt  test_4.txt  test_6.txt  test_8.txt

2.3.6 免密传输

测试的时候发现每次同步都需要输入认证密码才能同步;怎么做到不输入就能同步传输
方法一:使用密码文件同步
[root@nfs-31 /]# cd /etc/
[root@nfs-31 etc]# echo "cxy123456" > /etc/rsync.passwd 
[root@nfs-31 etc]# chmod 600 /etc/rsync.passwd 

[root@nfs-31 etc]# rsync -azvP /opt/test_dir/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd

方法二:使用环境变量来同步
[root@nfs-31 etc]# export RSYNC_PASSWORD='cxy123456'
[root@nfs-31 etc]# rsync -azvP /opt/test_dir/ rsync_backup@172.16.1.41::backup 

总结:怎么理解root,www,rsync_backup这个3个用户的关系
root用户就如快递公司老板
www用户就如快递公司的员工
rsync_backup用户就如快递公司的会员

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容