Linux下rsync+inotify实现实时文件同步

news/2024/11/7 7:53:54/

一、【接收端配置】
#cat /etc/rsyncd.conf
uid = root
gid = root
max connections = 8
pid file = /var/run/rsyncd.pid
log file=/var/log/rsyncd.log
hosts allow = 192.168.3.0/24
[dkms]
read only=no
write only=no
path=/data/digitalkey/upload/dkms
comment=dkms update
auth users=root #必须设置,否则无密码访问
secrets file=/etc/rsync.password

#chmod 600 /etc/rsync.password 必须为600权限
-rw------- 1 root root 14 May 15 13:38 /etc/rsync.password
#vi /etc/rsync.password 访问权限
root:pass1234

以deamon模式运行
#rsync --daemon --config=/etc/rsyncd.conf

二、【发送端(rsync + inotify)】
rsync只需要配置密码权限
#cat /etc/rsync.password
pass1234

测试
#rsync -avu /data/digitalkey/upload/dkms/ root@192.168.3.243::dkms --password-file=/etc/rsync.password

三、【inotify安装】
1、下载inotify安装包
wget --no-check-certificate https://jaist.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
2、解压安装包并进入解压文件夹
tar -zxf inotify-tools-3.13.tar.gz
cd inotify-tools-3.13/
3、安装inotify
./configure
make
make install
4、检查是否安装成功
#inotifywait
No files specified to watch!

四、【创建脚本】
#vi inotify_rsync.sh

#!/bin/bash
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib /data/digitalkey/upload/dkms \| while read files
dorsync -avu /data/digitalkey/upload/dkms/   root@192.168.3.243::dkms  --password-file=/etc/rsync.password > /dev/null 2>&1echo "rsync was finished !" >> /tmp/rsync.log 2>&1
done

#/yunwei/sh/inotify_rsync.sh & 后台运行
#echo “/yunwei/sh/inotify_rsync.sh &” >> /etc/rc.local 脚本加入系统自启动文件
#ps -ef|grep rsync 查看进程
root 2504 1 0 13:27 ? 00:00:00 rsync --daemon --config=/etc/rsyncd.conf
root 8615 2421 0 14:12 pts/0 00:00:00 /bin/bash /yunwei/sh/inotify_rsync.sh
root 8618 8615 0 14:12 pts/0 00:00:00 /bin/bash /yunwei/sh/inotify_rsync.sh
root 8620 2421 0 14:12 pts/0 00:00:00 grep --color=auto rsync


http://www.ppmy.cn/news/68021.html

相关文章

还在为项目初始化、依赖管理问题困扰?Dubbo Initializer 来了!

作者:Dubbo 社区 通过这篇文章,你将学习如何在 1 分钟内用 Dubbo Initializer 模板快速创建 Dubbo Spring Boot 项目,帮你解决项目初始化问题。 什么是 Dubbo Initializer? Dubbo Initializer 是一款帮助开发者快速生成 Dubbo …

Doris的分区Partition和分桶Bucket介绍

Doris的分区Partition和分桶Bucket介绍 Doris数据库是一个分布式的列式存储数据库,它支持分区和分桶两种数据划分方式 分区:Doris数据库支持水平分区,即将数据按照某个字段的值进行分区,相同的值会被分配到同一个分区中。这种方…

C语言小游戏的实现——三子棋

前言 Hello!友友们,前边我们已经学习了C语言的基础知识,但单纯的理论和简单的代码演示是无法真正做到巩固所学的知识的,那么今天我将会带领大家,根据之前所学的知识,来写一个三子棋小游戏。 目录 前言 总…

PMP之预测部分

引论 什么是项目 项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目管理是把事办成的方法论,万物皆可项目。 项目的基本要素 项目(独特性、临时性)、驱动变更、启动背景、创造商业价值。 组织级项目管理(OPM&am…

泰克示波器MSO54B 5-BW-1000,4通道1G带宽

泰克MSO5B系列示波器,支持广泛的特定应用测量,满足您的各种需求。单独添加高级分析程序包或安装应用程序包,以处理更多不同的工作。 支持超过 25 种串行协议,覆盖常见的接口先进的单相和三相功率分析程序包确保信号完整性和电源完…

python列表平铺

嵌套的列表数据: lst = [1,2,[3,4],5,[6,[7,8]]] 大多数情况下不知道最深的嵌套是第几层,所以每次只能使用递归去解决平铺问题。代码如下: def flatten_list(nested_list):result = []for item in nested_list:if isinstance(item, list):result.extend(flatten_list(item…

关于使用pyinstaller来打包PySide2程序中的问题

打包 pyinstaller 02.py --noconsole --hidden-import PySide2.QtXml 报错0:The ‘pathlib‘ package is an obsolete backport of a standard library package 分析:这个是因为笔者使用的conda的集成环境,这里面自带了打包程序&#xff0c…

基于显扬科技3D视觉相机的医疗试管分拣系统

行业现状: 医疗试管分拣是医疗行业中的一个重要环节,指将医疗实验室或生物技术研究中的试管按照一定的规则进行分拣,并对试管的类型、位置、数量等信息进行识别和管理。 随着医疗技术的不断发展和诊断治疗的精细化,医疗试管分拣…