RSYNC介绍 、备份、自动备份 脚本编写

RSYNC 简介

rsync 是一个远程同步,是一个开源的快速安全高效的异地备份工具,可以在不同的主机之间镜像同步整个目录树,支持增量备份,有保持链接和权限功能,且采用优化的同步算法,传输前执行压缩。因此非常适合异地备份,镜像服务等应用,也减少了对外暴露的软件,减少了对外暴露的端口,也减少了网络的开销

RSYNC生产场景

1、用于数据异地备份

2、用于WEB集群中节点数据的批量更新,来保持数据的一致性

3、用于yum服务器与互联网镜像站软件同步

rsync服务角色

在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync,同步操作服务器为备份源(同步源),同步源负责提供文挡的原始位置,发起端应对该位置具有读或写权限

二、配置rsync备份源,

rsync,作为同步源是以守护进程运行的,为其他客户机提供备份源,同步源要建立配置文件/etc/rsyncd.conf.

首先第一步要建立/etc/rsyncd.conf 配置文件

第二步:为备份账户创建数据文件

第三步:启动rsync服务进程

首先检查一下xshell是否有这rsync的安装包,没有的话就去安装一下

为了更好的确认我将我的主机名更换名字叫服务端

 建立配置文件/etc/rsync.conf,

[root@sai ~]# vim /etc/rsyncd.conf

uid = nobody (程序用户名)

gid = nobody (组名)

use chroot = yes (禁锢在源目录,

address = 192.168.200.100 (监听地址)

oprt = 873 (监听端口)

log file = /var/log/rsyncd.log (日志文件位置)

pid file = /var/run/rsyncd.pid (存放进程ID文件位置)

hosts allow = 192.168.200.0/24 (允许访问的客户端地址)

[wwwroot] (共享模块名 随机起名字必须带扣号)

path = /var/www/html (源目录的实际路径)

comment = Document Root os ww.linuxu.com (描述信息 基本没啥用)

read only = no (不为只读)

dont compress = *.gz *.bz2 *.tgz *.rar *.z (同步时不再压缩的文件类型)

auth users = fuwu(备份授权用户)

secrets file = /etc/rsyncd_users.db (存放账户信息、密码的数据文件)没有的话就是匿名操作

 为了安全考虑,对于rsync的备份源最好仅允许只读,若要匿名方式去备份可以将后两行删掉就可以了

第二步,备份账户创建数据文件,密码信息在文件中以明文的方式存放,为了避免信息泄露还需要调整权限

注意:存账户密码信息得需要与rsync的配置文件相呼应

 

 

 备份用户fuwu也需要对/var/www/html/有相应的读取权限,

 3、启动rsync的服务名为rsync --daemon,要关闭srync服务可以采用kill或者 killall 

当出现这个问题的时候之间将/var/run/rsycd.pid删掉就可以了

因为启动需要创建/var/run/rsycd.pid,但是启动的时候已经有这个文件了只需要删掉就可以了

 

 这些基本上就配置完了

下一步来使用备份工具,这时需要再开一台机器, 我把名称改为kuhu机

 

 跟大家分享一下rsync的命令格式,和备份选项

rsync的命令格式及备份选项

命令格式:rsync [选项] 原始位置 目标位置

-r:递归模式,包含目录及子目录中所有文件,

-l:对于符号链接文件仍然复制为符号链接文件。

-p:保留文件的权限标记

-t:保留文件的时间标记

-g:保留文件的属组标记(仅超级用户使用)·

-o:保留文件的属主标记(仅超级用户使用)

-D:保留设备文件及其他特殊文件

-a:归档模式,递归并保留对象属性,等同于-rlptgoD结合

-v:显示同步过程的详细( verbose)信息

-z:在传输文件时进行压缩( compress) (传输过程中是压缩的到101客户机就会自动解压)

-H:保留硬连接文件·

-A:保留ACL属性信息

--delete:删除目标位置有而原始位置没有的文件。

--checksum根据对象的校验和来决定是否跳过文件。

 有两种备份方式:

下行备份操作:备份源对应 “原始位置”

上行备份操作:备份源对应 “目标位置”

操作实例

首先在fuwu机器创建一个文件 /var/www/html

 这就是传输过去了    注意:输入的创建密码就是在/etc/rsyncd_users.db/ 为pwd123

为大家解释一下命令吧:将fuwu110机器的文件 备份到当前主机/root/下

 再来看一下是否到了客户本机/var/www/html/

再来一次实例,在fuwu机器上在root下创建文件123

 再来看kehu机

 四、编写rsync自动备份方案

实际生产环境中的备份工作通常是按计划重复执行的,例如:每天晚上22:30对服务器的网站目录做一次同步,定期任务可结合shell和l crond,服务来完成

通过export RSYNC_PASSWORD(专门给rsync的变量)变量保存密码,rsync命令执行时可以自动读取该变量的值,在需要时发送给rsync,服务器来进行验证

首先操作一下无交互模式 还是一样在kehuji操作

unset RSYNC_PASSWORD (取消变量)为了方便下方测试我就不跟大家输入这个命令了

 在fuwu机创建一个文件

 这时kehu机不用输入密码就直接输入命令将文件东西传输过来

 忘了给大家分享rsync使用--delete用法,--delete::删除目标位置有而原始位置没有的文件。

这次先是kehu机

再来看一下服务机  fuwu机我创建了一个444

 

 这时发现我的kehu机下/var/www/html/没有了777 大家可以从上边图片对比一下

 2、用变量的方法对客户机来说是不安全,密码是可以看的到的

通过--password-file 选项指定存储密码文件

在客户机实例来操作

为了保护自己密码安全,修改权限仅自己观看

将当前的/etc/fuwu.pass 传输给fuwu机

开始自动备份每天晚上22:30对服务器的网站目录做一次同步,定期任务可结合shell和l crond,服务来完成

 基本上就完成了

五、可以写入脚本来同步  目前这是监控了一个

首先在kefu机器写一个脚本     如果想让110和109进行同步往第二行加入--delete

[root@kehu html]# vim /opt/inotify.sh


                  

给脚本加一个执行的权限

 给一个程序用户的属主属组

 启动脚本实施监控

 

此时我们再开一个kuhu主机ip也是109

 在新的109先创建目录

 再查看109情况是否同步过去

 再来看110是否被同步 有abbc证明同步了

实现多个监控

这时我们转变策略,如果监控3个客户端而3个客户端都需要配置rsync的文件这时我们可以转变为ssh协议

rsync -avz backuper@192.168.200.109::wwwroot /root/

rsync -avz 192.168.200.109:/root/

大家可以对比一下两个一个有双:: 一个是:

而双::走的rsync的协议 这时监控每个机器,而每个机器都需要下载rsync 并且配置rsync文件

而单:走的ssh协议   这时每个客户机都不需要更改rsync配置文件 只需要下载rsync文件就可以了

下面我给大家实例一下 

下面我新增了一个机器并且下载rsync软件包

先从109生成一下公钥 

将公钥导入110机器和101服务机器

 这时会让你输入110机器的密码也就是root密码

 首先就是编写咱们的脚本了,第一步要监控同一个目录

 

 

 

这时需要来重启rsync

kehu机也需要创建目录并于脚本相同

 

启动他并开始实施监控

 


 

 

 

 

第一次玩csdn 我的分享到此结束 哪有写的不好的请各位哥哥姐姐们发出评论帮我纠正 谢谢!! 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值