Rsync+inotify搭建使用
## Rsync搭建
### 1.1 环境准备
```
Rsync-Server 192.168.1.174
Client-Rsync 192.168.1.173
服务启动用户都是root,客户端的用户也是root
[root@Rsync-Server file]# systemctl stop firewalld
[root@Rsync-Server file]# getenforce
Permissive
```
### 1.1 检查是否安装rsync
```
[root@Rsync-Server ~]# rpm -qa|grep rsync
#如果没有安装Rsync
[root@Rsync-Server ~]# yum install -y rsync
``` ### 1.2 服务端配置Rsync
```
[root@Rsync-Server ~]# cat /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[file]
path = /data/file/
ignore errors
read only = false
list = false
hosts allow = 192.168.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_file
secrets file = /etc/rsync.password
[root@Rsync-Server ~]# cat /etc/rsync.password
rsync_file:123456
[root@Rsync-Server ~]# ll /etc/rsync.password
-rw-------. 1 root root 18 Oct 19 11:37 /etc/rsync.password
``` ### 1.3 Rsync启动脚本
```
[root@Rsync-Server file]# cat /etc/init.d/rsyncd
#!/bin/bash
. /etc/init.d/functions start() {
rsync --daemon &>/dev/null
if [ $? = 0 ];then
action "startting rsync" /bin/true
else
action "startting rsync" /bin/false
fi
} stop() {
if [ -e /var/run/rsyncd.pid ];then
kill -9 `cat /var/run/rsyncd.pid` &>/dev/null
rm -fr /var/run/rsyncd.pid /var/run/rsync.lock
action "stopping rsync" /bin/true
else
echo "the rsyncd is not running"
fi
} status() {
if [ -e "/var/run/rsyncd.pid" ];then
echo -e "\033[32m rsyncd is running... \033[0m"
else
echo -e "\033[31m rsyncd is stopped \033[0m"
fi
} restart() {
stop
start
} case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
*)
echo "USAG: $0 {start|stop|status|restart}"
esac
"Centos7用systemctl管理Rsync"
[root@Rsync-Server ~]# cat /usr/lib/systemd/system/rsyncd.service
[Unit]
Description=fast remote file copy program daemon
ConditionPathExists=/etc/rsyncd.conf [Service]
EnvironmentFile=/etc/sysconfig/rsyncd
Type=forking
PIDFile=/var/run/rsyncd.pid
ExecStart=/etc/init.d/rsyncd start
ExecReload=/etc/init.d/rsyncd restart
ExecStop=/etc/init.d/rsyncd stop
PrivateTmp=true [Install]
WantedBy=multi-user.target
``` ### 1.4 Rsync客户端
```
[root@Client-Rsync ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@Client-Rsync ~]# yum install -y inotify-tools rsync
[root@Client-Rsync ~]# cat /etc/rsync.password
123456
#测试一下rsync推送是否有问题
[root@Client-Rsync ~]# touch /data/file/ceshi_Test
[root@Client-Rsync ~]# rsync -avz /data/file/ rsync_file@192.168.1.174::file --password-file=/etc/rsync.password
sending incremental file list
./
ceshi_Test sent 172 bytes received 46 bytes 436.00 bytes/sec
total size is 0 speedup is 0.00
没有报错证明rsync推送成功,参数说明:
-v 详细模式输出,给出传输进度等信息
-z 压缩传输 --compress-level=NUM 指定压缩级别 1-9,9是最大压缩级别
-a 以归档方式传输,保留文件属性
-r 递归传输
-t 保持文件时间信息
-o 保持文件属主信息
-p 保持文件权限
-g 保持文件属组信息
-P 显示同步过程及进度等信息
-D 保持设备文件信息
-l 保持软链接
这些参数加起来等于 –a
--exclude=PATTERN 指定排除不需要传输的文件
--exclude-from=FILE 排除FILE中记录的文件
--delete 保证两边数据完全一样,如果源里没有该文件,就在目标目录删除
``` ### 1.5 配合inotify-tools
```
[root@Client-Rsync ~]# cat inotify.sh
#!/bin/bash
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create,close_write,modify,move,attrib /data/file/ \
|while read file
do
rsync -avz /data/file/ rsync_file@192.168.1.174::file --password-file=/etc/rsync.password
done
inotifywait参数详解:
-m 是保持一直监听
-r 是递归查看目录
-q 是打印出事件
-e modify,delete,create,attrib 是指"监听 创建 移动 删除 写入权限"
#启动测试
[root@Client-Rsync ~]# nohup sh inotify.sh &
``` ### 优化
```
如果实际并发较大,可以适当的把inotify简单优化下:
ls -l /proc/sys/fs/inotify/
echo "50000000" > /proc/sys/fs/inotify/max_user_watches 加大单进程最大的文件监视数量
echo "50000000" > /proc/sys/fs/inotify/max_queued_events 加大队列可容纳的事件数量
```
Rsync+inotify搭建使用的更多相关文章
- Rsync+Inotify 搭建实时同步数据
1.安装软件包 # yum install inotify-tools # yum -y install rsync 2.同步机器相互添加信任 [root@host-10-0-100-106 ~]# ...
- lsyncd实时同步搭建指南——取代rsync+inotify
1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify + rsync,但随着文件数量的增大到100W+,目录下的 ...
- CentOS7 Rsync服务搭建-Rsync+Inotify架构实现实时同步
一.rsync 概念 1.rsyncrsync是类unix/linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同 ...
- 通过rsync+inotify实现数据实时备份同步
一.环境描述 测试环境 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 环境描述: 主服务器172.26.7.50 ,从 ...
- rsync+inotify实现服务器数据同步
一.什么是rsync rsync,remote synchronize是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息.rsync是用 “rsync算 ...
- rsync+inotify实现服务器之间文件实时同步--转
之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行中,由于主服务器在给备份服务器传输的时候,我们的主服务器需要备份的文件是实时.不停的产生的,造成不知道 ...
- sersync基于rsync+inotify实现数据实时同步
一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192. ...
- rsync + inotify 实时同步
1. 前言 2 台 nginx 需要做集群, 静态文件和php文件都在nginx服务器本地. 有三种方案: (1)NFS (2)Rsync + inotify (3)共享存储服务器 第一种:当 nfs ...
- centos 配置rsync+inotify数据实时同步2
一.Rsync服务简介 1. 什么是Rsync 它是一个远程数据同步工具,它在同步文件的同时,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“rsync算法”来使本地和远程两个主机 ...
随机推荐
- SCUT - 11 - 被钦定的选手 - 质因数分解
https://scut.online/p/11 T了好多次,还想用mutimap暴力分解每个数的质因数.后来记录每个数的最小质因子过了. #include <bits/stdc++.h> ...
- C# Lodop与C-Lopdop选择打印机
原文:https://www.cnblogs.com/huaxie/p/9766886.html https://www.cnblogs.com/huaxie/p/10857490.html http ...
- Echarts数据可视化grid直角坐标系(xAxis、yAxis)详解:
mytextStyle={ color:"#333", //文字颜色 fontStyle:"normal", //italic斜体 oblique倾斜 font ...
- vue框架中实现今天昨天前天最近时间
点击下拉出几个选项,根据日期不同来过滤数据.看图--(忽略小梨子,这是日常练手页面) (element ui) 点击today-当天日期 点击last three days 点击custom,并且实现 ...
- 前端与后端数据交互的方式之ajax
前端与后端数据交互的方式之Ajax 对于前端学习而言,CSS+HTML+JavaScript的学习在自我学习的情况下掌握也不是很难,但是想要实现前后端的数据交互在没有指导的情况下学习会是一头雾水.接下 ...
- CentOS7搭建Flume与Kafka整合及基础操作与测试
前提 已完成Kafka的搭建,具体步骤参照CentOS7搭建Kafka单机环境及基础操作 Flume安装 下载 wget http://mirrors.tuna.tsinghua.edu.cn/apa ...
- Centos安装ifstat统计网络流量
原文地址: http://www.winvps.org/post/504.html 下载 ifstat , http://gael.roualland.free.fr/ifstat/ifstat-1 ...
- STS插件创建springboot项目,pom第一行报unkown错误
Description Resource Path Location TypeUnknown pom.xml /amq-provider line 1 ...
- C# 获取一个文件的MD5值
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
- 三、Windows下用FFmpeg+nginx+rtmp搭建直播环境 实现推流、拉流
一.环境 1.开发环境:windows 2.开发工具:FFmpeg.nginx.nginx-rmtp-module (链接:https://pan.baidu.com/s/119d2GeMzddas_ ...