当前位置: 首页 > news >正文

基于inotif的文件同步备份

1 ftp

因为服务器是linux的,而备份服务器是windows server的,故而采取lftp进行同步文件。

1.1 全量同步

cat > /appdata/script/sync_all.sh <<EOF
#!/bin/bash  # FTP 服务器信息  
FTP_SERVER="ftp://192.168.0.5"
FTP_USER="ftp用户名"
FTP_PASS="ftp密码"
FTP_DIR="/mysql_bak"
LOCAL_DIR="/appdata/nfsv/mysql/full"# 使用 lftp 同步本地目录到远程服务器  
lftp -u "$FTP_USER,$FTP_PASS" "$FTP_SERVER" <<EOF set ftp:passive-mode true  # 如果需要,启用被动模式  mirror --reverse --verbose --only-newer $LOCAL_DIR $FTP_DIR bye  
EOF  # 检查 lftp 命令是否成功(注意:这里的 $? 检查的是 lftp 的退出状态)  
if [ $? -ne 0 ]; thenecho "Error occurred during FTP sync."  exit 1
fiecho "FTP sync completed successfully."
EOFchmod +x /appdata/script/sync_all.sh

1.2 增量同步

cat > /appdata/script/inc_sync.sh <<EOF
#!/bin/bashMONITOR_DIR="/appdata/nfsv/mysql/full"
DEST_SERVER="192.168.0.5"
DEST_DIR="/mysql_bak"
LFTP_USER="ftp用户名"
LFTP_PASS="ftp密码"# 创建一个临时文件来保存 lftp 会话命令
LFTP_COMMANDS_FILE=$(mktemp)
LFTP_LOG_FILE=$(mktemp)# 监听文件变化
inotifywait -r -m -e modify,create,delete,move "$MONITOR_DIR" |
while read path action file; do# 构建源文件路径local_file="$path/$file"# 构建目标文件路径echo $pathremote_path="$DEST_DIR/${path#$MONITOR_DIR}"echo $remote_pathremote_file="$remote_path/$file"echo $remote_file# 添加 lftp 会话命令到临时文件echo "open $DEST_SERVER" >> "$LFTP_COMMANDS_FILE"echo "user $LFTP_USER $LFTP_PASS" >> "$LFTP_COMMANDS_FILE"echo "cd $DEST_DIR" >> "$LFTP_COMMANDS_FILE"# 添加 mkdir 命令到 lftp 会话命令文件 (确保目录存在)echo "mkdir -p '$remote_path'" >> "$LFTP_COMMANDS_FILE"# 添加 put 命令到 lftp 会话命令文件echo "cd '$remote_path'" >> "$LFTP_COMMANDS_FILE"echo "put '$local_file'" >> "$LFTP_COMMANDS_FILE"echo "cd $DEST_DIR" >> "$LFTP_COMMANDS_FILE"  # 返回到初始目录echo "exit" >> "$LFTP_COMMANDS_FILE"# 执行 lftp 会话,并将输出重定向到日志文件lftp -f "$LFTP_COMMANDS_FILE" > "$LFTP_LOG_FILE" 2>&1# 检查 lftp 输出以获取错误信息if grep -q "Not connected" "$LFTP_LOG_FILE"; thenecho "Error: Connection not established. Please check the FTP server configuration and network connectivity."elif grep -q "No such file or directory" "$LFTP_LOG_FILE"; thenecho "Error: Could not create directory. Please check the FTP server permissions."elseecho "File uploaded successfully."fi# 清空 lftp 会话命令文件> "$LFTP_COMMANDS_FILE"
done# 清理临时文件
rm "$LFTP_COMMANDS_FILE"
rm "$LFTP_LOG_FILE"
EOFchmod +x /appdata/script/inc_sync.sh
# windows与linux文件格式存在偏差,可以按照下面的命令进行转换
sed -i 's/\r$//' inc_sync.sh

设置开机启动

cat > /etc/systemd/system/mysql_backup.service <<EOF
[Unit]
Description=MySQL Backup Service
After=network.target[Service]
Type=simple
ExecStart=/appdata/script/inc_sync.sh
Restart=on-failure
User=root
Group=root[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable mysql_backup
systemctl start mysql_backup

相关文章:

基于inotif的文件同步备份

1 ftp 因为服务器是linux的&#xff0c;而备份服务器是windows server的&#xff0c;故而采取lftp进行同步文件。 1.1 全量同步 cat > /appdata/script/sync_all.sh <<EOF #!/bin/bash # FTP 服务器信息 FTP_SERVER"ftp://192.168.0.5" FTP_USER"…...

luckyexcel 编辑预览excel文件

luckyexcel 编辑预览excel文件 支持后端传文件流预览编辑&#xff0c;也支持选择本地文件编辑预览 看效果 上代码 <template><div style"margin: 30px"><div class"button-box2"><div><div style"color: red">…...

记录Java使用websocket

实现场景&#xff1a;每在小程序中添加一条数据时&#xff0c;后台将主动推送一个标记给PC端&#xff0c;PC端接收到标记将进行自动播放音频。 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import or…...

(javaweb)分层解耦

目录 一.三层架构 二.分层解耦 三.IOC&DI入门 四.IOC详解 五. DI详解 一.三层架构 复用性差&#xff0c;难以维护和管理 前端发起请求&#xff0c;先会到达controller&#xff0c;再调用service进行逻辑处理&#xff0c;逻辑处理的前提是先拿到数据&#xff0c;到dao…...

2024华为数通HCIP-datacom最新题库(H12-831变题更新⑨)

请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了&#xff0c;如果你准备去考试&#xff0c;还是用的之前的题库&#xff0c;切记暂缓。 如…...

PCIe学习笔记(21)

读请求的数据返回&#xff08;Data Return for Read Requests&#xff09; •针对内存读取请求的单个完成可能提供少于请求的全部数据量&#xff0c;只要对于给定请求的所有完成在组合起来时返回了读取请求中请求的数据量。 ◦不同请求的完成不能合并。 ◦I/O和Configuratio…...

分享Embedding 模型微调的实现

写在前面 \1. 当前比较主流的Embedding开源模型有哪些&#xff1f; 答&#xff1a;1. m3e(Moka Massive Mixed Embedding) 2. BAAI/bge-large-zh-v1.5。更多的开源模型评测榜单可见&#xff1a; https://huggingface.co/spaces/mteb/leaderboard \2. 模型的作用&#xff1f; …...

TED: 1靶场复现【附代码】(权限提升)

机下载地址&#xff1a; Ted: 1 ~ VulnHubTed: 1, made by Avraham Cohen. Download & walkthrough links are available.https://www.vulnhub.com/entry/ted-1,327/ 1. 主机发现端口扫描目录扫描敏感信息获取 1.1. 主机发现 nmap -sn 192.168.59.0/24|grep -B 2 00:0C…...

Python(TensorFlow)衍射光学层卷积算法模拟(英伟达GPU)

&#x1f3af;要点 &#x1f3af;衍射光学卷积算法模拟 | &#x1f3af;模拟或数字电子计算之前加入一层光学计算 | &#x1f3af;前馈卷积神经网络计算成像系统对输入图像进行分类 | &#x1f3af;相位掩模利用线性空间不变成像系统执行固有卷积 &#x1f4dc;用例 Python非…...

iOS开发进阶(二十二):Xcode* 离线安装 iOS Simulator

文章目录 一、前言二、模拟器安装 一、前言 Xcode 15 安装包的大小相比之前更小&#xff0c;因为除了 macOS 的 Components&#xff0c;其他都需要动态下载安装&#xff0c;否则提示 iOS 17 Simulator Not Installed。 如果不安装对应的运行模拟库&#xff0c;真机和模拟器无法…...

Prostgresql的Timescaledb插件/扩展部署

背景&#xff1a;研发需求&#xff0c;需要把docker部署得postgresql迁移到新的节点并要求再本地部署&#xff0c;提前查看数据库需要那些插件&#xff0c;并进行安装&#xff0c;docker部署的默认有插件。 版本对比&#xff1a;postgresql版本对应某个Timescaledb版本 我得p…...

分布式知识总结(一致性Hash算法)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 一致性Hash算法 假如有三台服务器编号node0、node1、node2&…...

图数据库在社交网络分析中的应用

随着社交网络的飞速发展&#xff0c;用户之间的关系变得日益复杂。传统的关系型数据库由于其表结构的限制&#xff0c;难以高效地处理和查询这些复杂的网络数据。图数据库以其独特的图模型结构&#xff0c;能够更好地表示和分析社交网络中的关系&#xff0c;因而在社交网络分析…...

Git基础使用教程

版本控制手册 本文中出现的 [ ] 为根据需求自行修改的变量。 基本命令 git init&#xff1a;将当前目录配置成git仓库&#xff0c;信息记录在隐藏的.git文件夹中。 git config --global user.name [xxx]&#xff1a;设置全局用户名&#xff0c;信息记录在~/.gitconfig文件中。…...

技术速递|Python in Visual Studio Code 2024年8月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 8 月发布&#xff01; 此版本包括以下公告&#xff1a; 面向贡献者的 Python 扩展开发容器用于运行带有参数的 Python 文件的调试配置Python 扩展 API 的 Npm 包容错 …...

【话题】重塑未来:AI辅助编程对程序员工作的影响与应对策略

目录 人工智能时代&#xff0c;程序员如何保持核心竞争力&#xff1f; 引言 方向一&#xff1a;AI辅助编程对程序员工作的影响 效率提升 代码质量 潜在风险 方向二&#xff1a;程序员应重点发展的核心能力 复杂系统设计 跨学科知识整合 与AI协作的能力 方向三&#xff1a;人机协…...

在Debian上安装freeswitch

在Debian上安装freeswitch 说明&#xff1a; 首次发表日期&#xff1a;2024-08-12参考文档&#xff1a; https://medium.com/jogikrunal9477/ultimate-guide-to-installing-freeswitch-on-ubuntu-22-04-lts-3745ef6a6bd6https://developer.signalwire.com/freeswitch/FreeSWI…...

论文分享 | Fuzz4All: 基于大语言模型的通用模糊测试

大语言模型是当前最受关注的研究热点&#xff0c;基于其生成和理解能力&#xff0c;对现有领域在提升性能和效果上做更多尝试。分享一篇发表于2024年ICSE会议的论文Fuzz4All&#xff0c;它组合多个大语言模型以非常轻量且黑盒的方式&#xff0c;实现了一种跨语言和软件的通用模…...

VS Code 配置docker 管理员权限终端

问题描述 在容器中需要使用sudo或者su root时候&#xff0c;权限不够&#xff0c;被灵魂提问。 然而&#xff0c;镜像是官方发布的&#xff0c;翻遍了githubissues也没有找到password. 解决 Attach shell 在docker插件中&#xff0c;attach shell 可以直接获得shell。 所…...

使用Linux实现FTP云盘1

关于FTP服务器 FTP&#xff08;文件传输协议&#xff09;服务器是在互联网上提供文件存储和访问服务的计算机&#xff0c;它们依照FTP 协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。 程序运行&#xff0c;服务端不断接收客户端指令&#xff0c;服务 端可同时处…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...