CentOS利用inotify+rsync实现文件同步
1、环境部署
inotify-master 10.10.6.208
inotify-slave 10.10.6.149
2、两台服务器都安装rsync
yum install -y rsync
3、inotify-slave部署
新建rsync用户及模块目录并更改其用户组
useradd rsync -s /sbin/nologin #添加rsync用户
mkdir /usr/local/backup #创建rsync daemon工作模式的模块目录
chown rsync.rsync /usr/local/backup #更改模块目录的用户组
编写rsync配置文件/etc/rsyncd.conf
vi /etc/rsyncd.conf
strict modes =yes #是否检查口令文件的权限
port = 873 #默认端口873
log file = /var/log/rsyncd.log #日志记录文件 原文中有的,我没有使用,日志文件
pid file = /var/log/rsyncd.pid #运行进程的ID写到哪里
[test]
max connections = 10 #客户端最大连接数,默认0(没限制)
uid = rsync #指定该模块传输文件时守护进程应该具有的uid
gid = rsync #指定该模块传输文件时守护进程应该具有的gid
path = /usr/local/backup/ # 需要做备份的目录
ignore errors # 可以忽略一些无关的IO错误
read only = no #no客户端可上传文件,yes只读
write only = no #no客户端可下载文件,yes不能下载
hosts allow = * #充许任何主机连接
hosts deny = 10.5.3.77 #禁止指定的主机连接
auth users = rsync_backup # 虚拟用户
secrets file = /etc/rsync.password # 虚拟用户口令文件位置
配置虚拟用户的密码文件
echo "rsync_backup:123456" >/etc/rsync.password #注:rsync_backup为虚拟用户,123456为这个虚拟用户的密码
chmod 600 /etc/rsync.password #为密码文件提权,增加安全性
启动rsync服务
rsync --daemon --config=/etc/rsyncd.conf
4、inotify-master部署
安装inotify-tools
tar zxvf inotify-tools-3.13.tar
cd inotify-tools-3.13
./configure --prefix=/usr/local/inotify-tools
make
make install
测试推送
echo "123456" >/etc/rsync.password
chmod 600 /etc/rsync.password
echo "hello dsideal">test.txt
rsync -avz test.txt rsync_backup@10.10.6.149::test --password-file=/etc/rsync.password
sending incremental file list
sent 30 bytes received 8 bytes 76.00 bytes/sec
total size is 14 speedup is 0.37
测试成功,查看10.10.6.149的/usr/local/backup目录文件已经同步过来。
编写监控脚本并加载到后台执行
vi inotify.sh
#!/bin/bash
#para
host01=10.10.6.149
src=/usr/local/backup/ #本地监控的目录
dst=test #inotify-slave的rsync服务的模块名
user=rsync_backup #inotify-slave的rsync服务的虚拟用户
rsync_passfile=/etc/rsync.password #本地调用rsync服务的密码文件
inotify_home=/usr/local/inotify-tools #inotify的安装目录
#judge
if [ ! -e "$src" ] \
|| [ ! -e "${rsync_passfile}" ] \
|| [ ! -e "${inotify_home}/bin/inotifywait" ] \
|| [ ! -e "/usr/bin/rsync" ];
then
echo "Check File and Folder"
exit 9
fi
${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src | while read file
do
cd $src && /usr/bin/rsync -aruz -R --delete ./ $user@$host01::$dst --password-file=${rsync_passfile} >/dev/null 2>&1
echo "${files} was rsynced" >> /tmp/rsync.log 2>&1
echo "---------------------------------------------------------------------------"
done
exit 0
# sh inotify.sh & #将脚本加入后台执行
CentOS利用inotify+rsync实现文件同步的更多相关文章
- 【转】inotify+rsync实现实时同步
[转]inotify+rsync实现实时同步 1.1 什么是实时同步:如何实现实时同步 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 发现目录中数据产生变化,就利用rsync服 ...
- rsync+inotfiy文件同步
rsync+inotfiy文件同步 1.部署rsync服务 yum install rsync #安装rsync,如果嫌yum版本过低也可以源码安装 2.vim /etc/rsyncd.conf #默 ...
- Linux下简单粗暴使用rsync实现文件同步备份【转】
这篇来说说如何安全的备份,还有一点不同的是上一篇是备份服务器拉取数据,这里要讲的是主服务器如何推送数据实现备份. 一.备份服务器配置rsync文件 vim /etc/rsyncd.conf #工作中指 ...
- Linux Rsync实现文件同步备份(转载)
原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...
- inotify配合rsync实现文件同步
一.slave端rsync设置在此部署rsync服务和rsync daemon 1.安装rsync 2.配置rsyncd.conf文件#vi /etc/rsyncd.conf配置文件uid = r ...
- Centos7利用rsync实现文件同步
0x01 测试环境 CentOS 7.4 Rsync服务端:192.168.204.130 CentOS 7.4 Rsync客户端:192.168.204.168 0x02 rsync同步方式 第一种 ...
- CentOS安装和配置Rsync进行文件同步
Liunx系统实现文件同步不需要搭建FTP这类的工具,只需要按照Rsync配置下文件就可以. 本文以Centos7.0为例. 1. 首先关闭SELINUX(不关闭无法同步,权限太高了) vi /etc ...
- inotify +rsync进行实时同步
1.安装rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpmyum -y install ino ...
- inotify+rsync实现实时同步
第1章 数据实时同步介绍 1.1 什么是实时同步:如何实现实时同步 A. 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 B. 发现目录中数据产生变化,就利用rsync服务推送到 ...
随机推荐
- WordPress数据库优化技巧
各位站长都知道wordpress用久了就会越来越慢.今天就给大家介绍如何给自己的wordpress提速,分两种方法:1.插件属性wordpress的都知道其插件是相当的多,只要你能想得到的基本都有,在 ...
- Robots.txt - 禁止爬虫(转)
Robots.txt - 禁止爬虫 robots.txt用于禁止网络爬虫访问网站指定目录.robots.txt的格式采用面向行的语法:空行.注释行(以#打头).规则行.规则行的格式为:Field: v ...
- [Data Structure & Algorithm] 八大排序算法
排序有内部排序和外部排序之分,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.我们这里说的八大排序算法均为内部排序. 下图为排序 ...
- Tools
Database: Online Schema Tool: http://dbdsgnr.appspot.com/ Orcale --> SQL developer MySQL--> To ...
- css浏览器兼容问题
https://www.douban.com/group/topic/4629864/
- CSS控制表格(table)样式
CSS控制表格样式 /* 合并边框重叠部分 */ table{border-collapse:collapse;} /* 单元格边框 */ td{border:1px solid #A7AEB1;}
- Linux文件查找命令 find 详解
关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权 ...
- LwIP移植和使用
LwIP移植和使用 本手册基于lwip-1.4.x编写,本人没有移植过1.4.0之前的版本,更早的版本或许有差别.如果看官发现问题欢迎联系<QQ: 937431539 email: 93743 ...
- iOS开发——高级篇——音频、音乐播放(封装类)
一.简介 简单来说,音频可以分为2种音效又称“短音频”,通常在程序中的播放时长为1~2秒在应用程序中起到点缀效果,提升整体用户体验 音乐比如游戏中的“背景音乐”,一般播放时间较长 播放音频可以使用框架 ...
- linux各目录的作用