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: 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服务