rsync服务+inotify自动代理+xinetd

1.将rsync做为服务:

centos7可以直接使用rsync命令,底层还是基于ssh服务。当然也可以将rsync作为服务使用:

关闭防火墙:systemctl stop firewalld

关闭selinux:setenforce 0

创建/tmp/app目录作为需要备份目录:mkdir -p /tmp/app

顺便创建几个测试文件:touch /tmp/app/a{1..9}.txt

安装rsync服务:yum -y install rsync

编辑rsync配置文件:vim /etc/rsyncd.conf

[app]                                    #标签
path=/tmp/app                            #要传输的文件目录
log file=/var/log/rsync.log              #日志文件
auth users=root                          #设置传输时需要密码的用户
secrets file=/etc/rsyncd.secerts         #存放密码文件位置

编写密码文件:vim /etc/rsyncd.secerts

root:1234

设置密码文件权限:chmod 600 /etc/rsyncd.secerts

重启rsync服务:systemctl restart rsyncd

启动rsync服务:systemctl start rsyncd

查看rsync的网络信息:netstat -tunlp |grep rsyncd

通过备份服务器测试(备份服务器中执行,也安装rsync服务):

语法:rsync -a 用户名@目标IP地址::

-a  获取标签

rsync -a root@192.168.156.10::

将目标服务器文件同步到备份虚拟机(在备份服务器执行):

语法:rsync -av 用户名@目标IP地址::标签 保存目录

-v 传输

rsync -av root@192.168.156.10::app ./       可以在当前目录看到目标服务器中文件已经备份过来了

2.将rsync交给inotify代理,实现实时同步:

下载inotify:https://link.csdn.net/?target=http%3A%2F%2Fgithub.com%2Fdownloads%2Frvoicilas%2Finotify-tools%2Finotify-tools-3.14.tar.gz

解压安装inotify: tar -xf inotify-tools-3.14.tar.gz

cd inotify-tools-3.14/

配置、编译、安装: ./configure &&make && make install

编写脚本文件:vim inotify.sh

#!/bin/bash
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /tmp/app| while read events
        do
                rsync -av --delete /tmp/app  root@192.168.156.15:/tmp/app1
                echo "`date +%F\ %T`出现事件$events" >> /var/log/reync.log 2>&1
        done
~
~

添加权限: chmod +x inotify.sh

后台执行: ./inotify.sh &                                如果终端退出会结束

如果要查看后台运行项目:jobs;如果要结束后台项目:pkill +%项目列表

后台永久运行:nohup  ./inotify.sh &  

这时候那可以在目标服务器目标目录,创建、删除、移动文件,会自动同步到备份服务器

3.将rsync服务交予xinetd控制(在目标服务器):

由于rsync是一个轻量的服务,没有自己的停止脚本,我们可以将rsync交予xinetd服务管理,我们通过管理xinetd服务来管理rsync服务

安装:yum -y install xinetd

编辑/etc/xinetd.conf配置文件:vim /etc/xinetd.conf

这个配置文件主要时设置连接数量,并发量,等待时间等配置。可以通过man 5 /etc/xinetd.conf  查看每一个选项的具体用法

为xinetd添加托管rsync服务:vim /etc/xinetd.d/rsync

service rsync
{
        disable         = no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID


}

重启xinetd服务:systemctl restart xinetd

查看xinetd网络信息:ss -naltp |grep 873

[root@localhost ~]# ss -naltp |grep 873
LISTEN     0      64          :::873                     :::*   users:(("xinetd",pid=5038,fd=5))

可以看到873端口原本是rsync服务,现在已经变成了xinetd服务

这样我们就可以使用systemctl restart|start|stop xinetd 管理rsync服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值