rsync

rsync作为linux镜像备份工具,十分方便快捷,不过稍微注意一点,它一般只能备份小文件,别用来备份数据库(容量比较大),具体认证协议什么的特性见百度google。

以下主要讲它的配置,以及搭配inotify的使用。

说明:inotify主要作为一种文件系统事件监控机制来帮助rsync备份,这是由rsync是通过crontab守护进程方式进行触发,从而实现文件的同步,这样会存在一个问题:不能够及时的同步源主机的数据(请百度google搜索crontab守护进程),所以引入了inotify。

这里需要用到两台服务器分别做源和目标

需求:部署rsync+inotify同步/etc目录至目标服务器的/NAME/下。这里的NAME,我取的名字叫chao

rsync命令

简单说一下,它可以直接当拷贝来用,相当于cp,但更多用于本地和远程之间的镜像备份。

rsync -avz nfs.sh root@172.16.12.129:/root/
#这是将本地的数据备份到远程服务器的某个目录下面

rsync -avz root@172.16.12.129:/etc/yum.repos.d /root/
#这个是将远程服务器的数据备份到本地上面

目标服务器

systemctl stop firewalld
systemctl disable firewalld
getenforce
setenforce 0
sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/sysconfig/selinux
#主要是关闭防火墙和SELINUX

 安装

#安装rsync软件,src和dest服务器都要安装
yum -y install rsync
#等Comlete就行,不过有些linux系统自带(我自己的就是),所以问题不大

 配置文件

vim /etc/rsyncd.conf
#设置配置文件

log file = /var/log/rsyncd.log
#日志文件位置,启动rsync后自动产生这个文件,无需提前创建

pidfile = /var/run/rsyncd.pid
#pid文件的存放位置

lock file = /var/run/rsync.lock
#支持max connections参数的锁文件

secrets file = /etc/rsync.pass
#用户认证配置文件,里面保存用户名称和密码,必须手动创建这个文件



[etc_from_client]     
#自定义同步名称

path = /tmp/          
#rsync服务端数据存放路径,客户端的数据将同步至此目录

comment = sync etc from client
uid = root        
#设置rsync运行权限为root

gid = root        
#设置rsync运行权限为root

port = 873        
#默认端口

ignore errors     
#表示出现错误忽略错误

use chroot = no       
#默认为true,修改为no,增加对目录文件软连接的备份

read only = no    
#设置rsync服务端为读写权限

list = no     
#不显示rsync服务端资源列表

max connections = 200     
#最大连接数

timeout = 600     
#设置超时时间

auth users = admin        
#执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开

hosts allow = 172.16.12.128   
#允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开

hosts deny = 192.168.1.1      
#禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开

创建用户

echo 'chao:123456' > /etc/rsync.pass
#创建用户认证文件

cat /etc/rsync.pass
#确认一下

chmod 600 /etc/rsync*
ll /etc/rsync*
#设置它的权限

 开启自启动

systemctl start rsyncd
#启动

systemctl enable rsyncd
#开机自启

ss -antl

源服务器

systemctl stop firewalld
systemctl disable firewalld
getenforce
setenforce 0
sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/sysconfig/selinux
#主要是关闭防火墙和SELINUX

 安装

一般都没问题,如果有问题,那就配置一下yum源

yum -y install epel-release
#安装rsync软件,src和dest服务器都要安装
yum -y install rsync
#等Comlete就行,不过有些linux系统自带(我自己的就是),所以问题不大

认证文件

echo '123456' > /etc/rsync.pass
cat /etc/rsync.pass
#和目标服务器一下 不过它只需要密码

chmod 600 /etc/rsync.pass
ll /etc/rsync.pass
#设置权限

测试

#先手动测试一下,看能否同步数据

mkdir -pv /root/etc/test
#创建文件


rsync -avH --port 873 --progress --delete /root/etc/ admin@172.16.12.129::etc_from_client --password-file=/etc/rsync.pass
#简称对暗号

#运行完成后,在目标服务器上查看,在/tmp目录下有chao目录,说明数据同步成功

安装inotify-tools工具

ll /proc/sys/fs/inotify/
#先看看服务器内核是否支持它,一般有3个max开头的文件就表示OK

yum -y install make gcc gcc-c++

yum -y install inotify-tools

写同步脚本

mkdir /scripts

touch /scripts/inotify.sh

chmod 755 /scripts/inotify.sh
#配置权限

ll /scripts/inotify.sh

vim /scripts/inotify.sh

host=172.16.12.129      
#目标服务器的ip(备份服务器)

src=/etc        
#在源服务器上所要监控的备份目录(此处可以自定义,但是要保证存在)

des=etc_from_client     
#自定义的模块名,需要与目标服务器上定义的同步名称一致

password=/etc/rsync.pass        
#执行数据同步的密码文件

user=admin          
#执行数据同步的用户名

inotifywait=/usr/bin/inotifywait

$inotifywait -mrq --timefmt '%Y%m%d %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files ;do
    rsync -avzP --delete  --timeout=100 --password-file=${password} $src $user@$host::$des
    echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done

启动脚本

nohup bash /scripts/inotify.sh &

nohup: ignoring input and appending output to ‘nohup.out’

ps -ef|grep inotify

#在源服务器上生成一个新文件

ls /etc/chao/

echo 'hello world' > /etc/chao/test

#查看日志
tail /tmp/rsync.log

设置脚本开机自启动

chmod +x /etc/rc.d/rc.local

ll /etc/rc.d/rc.local

echo 'nohup /bin/bash /scripts/inotify.sh' >> /etc/rc.d/rc.local

tail /etc/rc.d/rc.local

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值