Linux 文件实时备份 rsync+lsyncd

news2024/12/22 22:13:54

一、原理和说明

lsyncd官网

(一)软件说明

目的是每次只把新修改的同步,而不是全量备份。
Rsync(同步):将一个服务器的一个文件夹的内容提交到另外一个服务器的文件夹
lsyncd(差异检测并调用rsync):把差异的找出来,然后运行脚本

(二)本方法说明

采用的是推送模式,即需要备份文件的服务器(客户端)向备份服务器(服务端)推送
客户端:客户端的文件需要被备份
服务端:接收客户端的文件并保存的

(三)演示说明

以下的演示中,两台设备信息如下
注意,下面的备份目录根据自己情况调整
客户端

局域网ip:192.168.0.188
系统:debian11
备份文件夹:/edp

服务端

局域网ip:192.168.0.199
系统:debian11
备份文件夹:/cloud/edp_bf

(四)其它说明

需要先开放对应端口,默认是873。另外注意selinux,如果搞不定就关了selinx

二、服务端配置(接收备份文件的)

服务端只需要安装rsync

1.安装rsync

apt-get install rsync

2.创建接收备份后保存的目录

目录不要直接抄

mkdir /cloud/edp_bf

3.创建同步的账号密码

echo "rsync_backup:123456" >/etc/rsync.password && chmod 600 /etc/rsync.password

账号为:rsync_backup
密码为:123456

4.配置reync

vi /etc/rsyncd.conf

内容如下

uid = root
gid = root
use chroot = no
max connections = 36000
timeout = 600
pid file =/var/run/rsyncd.pid
lock file =/var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors = no
read only = no
list = no
hosts allow = 192.168.0.188
auth users = rsync_backup
secrets file =/etc/rsync.password
[backup]
path = /cloud/edp_bf/

说明:
uid和gid可以自己新建一个linux用户并修改,我这里直接用root账户了
hosts allow我这里直接限定了只允许一个,如果全部放开,就是填*
用户名为rsync_backup
自己配置的密码文件为/etc/rsync.password
接收备份的应用名为backup(倒数第二行,这个在客户端也用的到)

5.测试并开机启动

systemctl daemon-reload && systemctl restart rsync
systemctl status rsync

开机启动

systemctl enable rsync

三、客户端配置(文件需要被备份的)

需要安装rsync和sersync

(一)安装配置rsync

1.包安装

apt-get install rsync

2.配置

vi /etc/rsyncd.conf

内容如下

uid = root
gid = root
use chroot = no
max connections = 36000
pid file =/var/run/rsyncd.pid
lock file =/var/run/rsync.lock
log file = /var/log/rsyncd.log

保存后退出

3.创建访问服务端的密码(服务端那也设置过一次,这里相同,也可以直接复制过来)

echo "123456" >/etc/rsync.password && chmod 600 /etc/rsync.password

4.调整系统配置

echo 81920 >/proc/sys/fs/inotify/max_user_watches
echo 327678 >/proc/sys/fs/inotify/max_queued_events

5.测试(可以省略,这个是手动的命令)

rsync -avzP /edp/ rsync_backup@192.168.0.199::backup --password-file=/etc/rsync.password

如果测试成功,说明rsync已经配置好了,可以手动备份了。

6.启动并开机启动或者关掉

注意,如果不是为了双向同步,客户端的这个rsync可以关掉,我这里还是设置开启。
但是不能不安装rsync,因为lsyncd也要调用rsync命令

systemctl daemon-reload && systemctl restart rsync
systemctl enable rsync

如果要关掉

systemctl daemon-reload
systemctl stop rsync && systemctl disable rsync

(二)安装配置sersync

封装了inotify-tools,所以无需再安装

1.安装lsyncd

apt-get install lsyncd

2.配置文件

vi /etc/lsyncd.conf

内容如下

settings {
	logfile = "/var/log/lsyncd/lsyncd.log",
	statusFile = "/var/log/lsyncd/lsyncd.status",
	insist = true,
	statusInterval = 10
}

sync {
	default.rsync,
	source="/edp",
	target="rsync_backup@192.168.0.199::backup",
	rsync = {
			binary = "/usr/bin/rsync",
			archive = true,
			compress = true,
			verbose   = true,
			--delete =  true,
			 _extra = {"--password-file=/etc/rsync.password"}
	}
}

创建日志文件

mkdir /var/log/lsyncd
vi /var/log/lsyncd/lsyncd.log

3.修改启动脚本文件

通过脚本执行状态查询具体位置(可能不同系统不一样,但是这种方法肯定能找到)

systemctl status lsyncd

装好后是这里

vi /etc/init.d/lsyncd

找到并修改这一行为上面配置的文件,修改如下,保存退出
在这里插入图片描述

4.测试启动

刷新systemctl脚本并重新启动

systemctl daemon-reload
systemctl restart lsyncd

此时正常运行,注意:文件同步会有几秒的延迟,这也是避免不必要的资源浪费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/653198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java阶段四Day06

Java阶段四Day06 文章目录 Java阶段四Day06关于配置响应内容中不包含Null的属性关于配置跨域关于如何不用添加RequestBody也可以接收请求 关于配置响应内容中不包含Null的属性 响应内容中的null可以使用以下三种方式中的一种即可解决,且范围越小,越优先 …

新人如何在实际工作做性能测试?怎么合理选择并发数?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 从小入手&#xf…

C++ 11(3) | 新的类功能、可变参数模板、lambda表达式

前文中我们讲述了C11中新增的右值引用,在本文中我们将继续讲解C11中的新的类功能、可变参数模板、lambda表达式。 新的类功能 默认成员函数 之前我们学习过在C中有六个默认成员函数构造函数、析构函数、拷贝构造函数、拷贝赋值重载、取地址重载、const 取地址重载…

【59天|503.下一个更大元素II ● 42. 接雨水】

503.下一个更大元素II class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {stack<int> st;int n nums.size();vector<int> res (n, -1);for(int i0; i<2*n;i){while(!st.empty()&&nums[i%n]>nums[st.t…

第13章_事务基础知识

第13章_事务基础知识 1.数据库事务概述 事务是数据库区别于文件系统的重要特性之一&#xff0c;当我们有了事务就会让数据库始终保持一致性&#xff0c;同时我们还能通过事务的机制恢复到某个时间点&#xff0c;这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。 1…

Moonbeam路由流动性

Moonbeam路由流动性&#xff08;Moonbeam Routed Liquidity, MRL&#xff09;使加密资产流动性能够从其他生态系统&#xff08;如以太坊、Solana、Polygon或Avalanche&#xff09;进入波卡生态系统。借助MRL&#xff0c;用户可以通过简洁的用户体验向/从波卡转移他们的流动性。…

横竖屏切换导致页面频繁重启?详细解读screenLayout

目录 前言configChangesscreenLayout平板问题总结 前言 前几天多名用户反馈同一个问题&#xff0c;在小新平板上无法上网课&#xff0c;点击上课按钮后就退回到首页了。了解了一下发现小新平板现在销量特别好&#xff0c;于是赶紧申请了一台测试机打算看看到底是什么问题。 最…

牛客网语法篇刷题(C语言) — 分支控制

作者主页&#xff1a;paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《C语言-语法篇》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白…

附录6-todolist案例

效果是这样的 可以添加新任务&#xff0c;改变任务状态&#xff0c;与筛选任务列表 使用vant创建的项目 使用到了bootstrap&#xff0c;首先 npm install bootstrap进行安装&#xff0c;安装后导入css与js 上中下是三个组件&#xff0c;依次是 todo_input&#xff0c;todo_li…

Python控制LitePoint IQxel-MW 无线网络测试仪

前言 由于项目需要进行WIFI和BT&#xff08;蓝牙&#xff09;的射频测试&#xff0c;所以需要开发一款支持WIFI/BT射频测试的工具。开发射频测试工具的话那肯定离不开仪表的控制。我们项目用的就Litepoint的IQxel-MW无线网络测试仪。这篇文章主要就是介绍一下如何控制仪表以及…

初探core组件:opencv - core组件进阶

core组件进阶 1.访问图像中的像素1.1 图像在内存之中的存储方式1.2 颜色空间缩减1.3 LUT函数&#xff1a;Look up table1.4 计时函数 2. ROI区域图像叠加&图像混合2.1 感兴趣区域&#xff1a;ROI2.2 ROI案例2.2 线性混合操作2.3 计算数组加权和&#xff1a;addWeighted()函…

python-segno:二维码制作

目录 二维码版本 微二维码、数据掩码、数据流、模式 微二维码 数据掩码 数据流 二维码模式 二维码背景 二维码参数 helpers方法 其他库制作及二维码读取&#xff1a;python生成和读取二维码_觅远的博客-CSDN博客 安装&#xff1a;pip install segno import segnoqr …

Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131244269 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

经典30个嵌入式面试问题

经典30个嵌入式面试问题 嵌入式系统的面试经典问题有很多&#xff0c;以下是其中的30个常见问题&#xff1a; 1. 什么是嵌入式系统&#xff1f; 2. 嵌入式系统和普通计算机系统有什么区别&#xff1f; 3. 嵌入式系统的主要应用领域有哪些&#xff1f; 4. 嵌入式系统的设计…

接口测试工具之postman

概念 接口测试是什么&#xff1f; 百度百科给出的解释是&#xff1a; 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间…

构造函数初始化列表的问题

构造函数初始化列表的问题 无法按照表达式中的算符来修改值原因基本原则由此引申的问题使用初始化列表对类成员初始化在构造函数中赋值对类成员初始化 针对构造函数传参,使用引用的情况使用初始化列表对类成员初始化在构造函数中赋值对类成员初始化 将属性也使用引用总结 无法按…

STM32开发——看门狗

目录 1.独立看门狗 1.1需求 1.2CubeMX设置 1.3函数代码 2.窗口看门狗 2.1需求 ​2.2WWDG配置&#xff1a; 2.3函数代码 3.独立看门狗和窗口看门狗的异同点 1.独立看门狗 监测单片机程序运行状态的模块或者芯片&#xff0c;俗称“看门狗”(watchdog) 。 独立看门狗本质 本…

6、DuiLib控件消息响应处理

文章目录 1、DuiLib控件消息响应处理2、基本的消息响应处理 Notify3、仿 MFC 形式消息响应 DUI_DECLARE_MESSAGE_MAP4、事件委托 MakeDelegate5、消息捕获&#xff08;拦截&#xff09;原生消息 HandleMessage 1、DuiLib控件消息响应处理 <?xml version"1.0" en…

软件测试基础教程学习3

文章目录 软件质量与测试3.1 软件质量问题的原因3.2 对软件质量特性的理解3.3 基于软件质量特性的测试3.4 软件能力成熟度模型&#xff08;CMM&#xff09; 软件质量与测试 3.1 软件质量问题的原因 软件质量问题的原因有以下几种&#xff1a; 软件本身的特点和目前普遍采用的…

AWTK实现汽车仪表Cluster/DashBoard嵌入式GUI开发(五):芯片型号

前言 随着汽车四化的推进,可以说汽车仪表也变成越来越智能化的一个ECU部件了。市面上的车型很多,油车发展了很多年,都有仪表,电车也发展起来了,车型也非常丰富,也都有仪表。仪表现在是作为多屏中一个屏存在的,现在车上最多的就是屏了,最大的要算中控屏了,有的还有空调…