linux系统文件通过rsync的备份:详细实战版

rsync简单介绍

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。支持跨平台,可以在Windows与Linux间进行数据同步。
1.rsync可以实现本机文件拷贝同步(考虑和cp的区别)
#rsync -av /etc/passwd /opta/backup
2.rsync本机使用远程shell与远程主机之间实现数据拷贝同步(考虑和scp的区别)
# rsync -av --delete /share/data/ root@192.168.121.164:/opt/backup
3.rsync本机客户端通过网络套接字连接rsync deamon服务的端口,然后实现文件数据传输。
# rsync -av --delete /share/data/ rsync://192.168.121.164/backup
或者
# rsync -av --delete /share/data/ 192.168.121.164::backup
# rsync -av --delete rsync://192.168.121.164/backup /tmp

环境配置

主机 状态 ip 系统 备份目录

133 主 192.168.121.133 RHEL7 /data

164 备 192.168.121.161 RHEL7 /data/backup

下面开始操作

首先两台机子都下载rsync安装包,安装好后在/etc下就会有rsyncd.conf配置文件

[root@localhost ~]# yum  install -y  rsync

[root@node110 ~]# rpm -ql  rsync
/etc/rsyncd.conf
/etc/sysconfig/rsyncd
/usr/bin/rsync
/usr/lib/systemd/system/rsyncd.service

分别创建好两台要用到的目录

164是/data/backupmul

133是/data目录

然后在备份机164上配置rsyncd.conf文件

[root@localhost ~]# vim /etc/rsyncd.conf
uid = root
gid = root
port = 873
max connections = 0
ignore errors
exclude = lost+found/
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup = no
[backup]
path = /data/backup/
comment = backup
read only = no
auth users = rsyncuser
secrets file = /etc/rsync.pass

下面是配置的解释

uid = root   #提定以哪个用户来访问共享目录,将之指定为生成的文件所有者,默认为nobody
gid = root   #默认为nobody
\#port = 874  #可指定非标准端口,默认873/tcp
\#use chroot = no  #限定用户目录
max connections = 0     #'0'表示无限制
ignore errors     #忽略传输过程的错误
exclude = lost+found/   #排查哪些文件不同步
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup = no  #关闭连接时的反向解析,提高连接效率

[backup]  #每个模块名对应一个不同的path目录,如果同名后面模块生效
path = /data/backup/  
comment = backup 
read only = no     #默认是yes,即只读
auth users = rsyncuser  #默认anonymous可以访问rsync服务器,无需密码验证
secrets file = /etc/rsync.pass

然后配置验证用户的信息

编辑rsyncuser用户文件,确保安全设置权限0600,

这里注意!!!
一定是0600权限,多给都不行

[root@node110 ~]# echo  "rsyncuser:123456"  >> /etc/rsync.pass
[root@node110 ~]# chmod 0600   /etc/rsync.pass

然后启动rsyncd服务

[root@localhost ~]# systemctl restart rsyncd

配置启动好以后

在主机133上也启动rsyncd服务,直接启动就行,不用动配置文件

[root@ly001 ~]# systemctl restart rsyncd

然后查看164主机是否开启了模组

[root@ly001 ~]# rsync     rsync://192.168.121.164
backup         	backup

可以看到我们的164主机的模组开启了

然后在主机的/data目录下添加一些测试数据,文件或者文件夹

[root@ly001 ~]# touch /data/aaa{1..3}
[root@ly001 ~]# mkdir /data/test
[root@ly001 ~]# ls /data/
aaa1  aaa2  aaa3  test
[root@ly001 ~]# 

然后就可以将数据同步给备用主机的模组了,这里是要输入密码的,密码是刚才在164上配置的验证用户的密码,不是164主机root用户的密码,刚才设置的是rsyncuser用户密码123456,所以就用这个用户和密码来验证

[root@ly001 ~]# touch /data/aaa{1..3}
[root@ly001 ~]# mkdir /data/test
[root@ly001 ~]# ls /data/
aaa1  aaa2  aaa3  test
[root@ly001 ~]# rsync  -avz  /data/   rsyncuser@192.168.121.164::backup
Password: 
sending incremental file list
./
aaa1
aaa2
aaa3
test/

sent 246 bytes  received 84 bytes  94.29 bytes/sec
total size is 0  speedup is 0.00
[root@ly001 ~]# 

在164上也查看数据,发现文件和文件夹也都有了

[root@localhost ~]# ls /data/backup/
aaa1  aaa2  aaa3  test
[root@localhost ~]# 

说明数据就同步过来了。数据同步就完成了

下面是不用输入密码的方式,因为平时的备份都是自动的,非交互式的,输入密码这种事当然并不满足需求了。

还是刚才的所有配置,唯一不同的就是推送数据前要变一下。

先在主机上创建一个文件存放备用主机的验证密码,然后修改权限,记住一定是0600,然后添加测试数据,在推送数据的时候加上–password-file=/opt/rsync.pass参数就不用输入密码, 执行的时候会自己读取密码。

下面是完整的步骤

[root@ly001 ~]# echo "123456" > /opt/rsync.pass
[root@ly001 ~]# chmod 0600   /opt/rsync.pass 
[root@ly001 ~]# touch /data/bbb{1..4}
[root@ly001 ~]# rsync   -azv  --delete --password-file=/opt/rsync.pass   /data/    rsyncuser@192.168.121.164::backup 
sending incremental file list
./
bbb1
bbb2
bbb3
bbb4

sent 341 bytes  received 96 bytes  874.00 bytes/sec
total size is 0  speedup is 0.00
[root@ly001 ~]# 

然后去备份数据库查看信息,可以看到完成了同步了。

[root@localhost ~]# ls /data/backup/
aaa1  aaa2  aaa3  test
[root@localhost ~]# ls /data/backup/
aaa1  aaa2  aaa3  bbb1  bbb2  bbb3  bbb4  test
[root@localhost ~]# 

如果要定时备份数据,将命令加到定时任务里就好了。

在写这篇文章的时候也有参考其它文档,如有侵权请告知删除。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值