news 2026/5/1 9:26:59

linux原生工具rsync增量备份

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux原生工具rsync增量备份

甲方服务器上面的附件有大几百G需要备份,网络备份断网对新旧文件都有问题,每次批量备份影响效率,上司提出了一个解决方法 :linux工具、增量备份。

增量备份即只备份新增/修改的文件,甚至包含同步删除(此处只备份暂未添加)。

工具:linux原生工具rsync

  1. 首先查看备份目录内存大小是否满足
  2. 创建.sh文件,可将下面代码直接复制。
  3. 增加权限
    chmod +x bak_attach.sh
  4. 可能遇到的问题:脚本兼容问题。如果你是Windows打开记事本从头编辑然后把文件甩给linux则会出现。(下面代码已做了处理无须重复)
    # 直接替换脚本中的 ^M 字符(命令中的 \r 对应 ^M) sed -i 's/\r$//' file.sh

功能:

  • 旧目录文件复制到新目录文件(包含子目录文件)
  • 日志成功错误会直接打印在终端
  • 执行前会检测内存 是否满足规定的10/100G(一开始是100G,测试改为10G)
  • 第一次完整备份,后续增量备份(只备份新增/修改)
  • 完美复制远文件元信息
#!/bin/bash # 增量备份脚本(封装rsync):备份整个目录下的所有文件、子目录及子目录内的所有内容 # 修改后:所有输出直接打印到终端,不生成日志文件;备份成功后打印新文件存放目录 # 1. 配置参数(========= 核心路径详细注释 =========) # 【源路径/老路径】:服务器上原始附件存放的目录(需要被备份的源目录) # 含义:这是你要备份的"原文件所在目录",也就是存量附件和新增/修改附件的存放目录 # 末尾的 "/" 必须保留:表示复制该目录下的所有内容(文件+子目录),而非复制目录本身 SOURCE_DIR="/home/ppt/" # 【目标路径/新路径】:备份文件要存储的目录(备份后的文件存放目录,即"新路径") # 含义:这是你要把附件备份到的目标位置,增量备份会把变更的文件同步到这个目录 # 支持两种形式:1. 本地目录(如下) 2. 跨服务器目录(示例:user@192.168.1.100:/backup/attachments/) # 末尾的 "/" 建议保留:和源路径格式统一,确保备份目录结构一致 TARGET_DIR="/home/backup/renmin/" # 2. 检查磁盘空间(剩余空间小于10G则停止备份,此处原100G改为10G,可按需调整) # ${TARGET_DIR%/*} :自动获取目标目录的上级目录(用于查询磁盘剩余空间) FREE_SPACE=$(df -m ${TARGET_DIR%/*} | awk 'NR==2{print $4}') if [ $FREE_SPACE -lt 10240 ]; then # 直接打印到终端,去掉日志重定向 echo "$(date +'%Y-%m-%d %H:%M:%S') - 错误:备份目录剩余空间不足10G,当前剩余:${FREE_SPACE}M" exit 1 fi # 3. 执行rsync增量备份 # 核心说明:该命令会备份 源路径(SOURCE_DIR) 下的【所有文件+所有子目录+子目录内的所有层级文件】 # -a 参数:归档模式,自动递归备份子目录,保留文件权限、时间戳等元信息(确保目录结构完整) # --delete 参数:同步删除操作(源目录删除的文件,备份目录也会同步删除,保持完全一致) # 去掉日志重定向,rsync进度直接打印到终端 echo "$(date +'%Y-%m-%d %H:%M:%S') - 开始执行增量备份" rsync -aP --delete --bwlimit=10240 $SOURCE_DIR $TARGET_DIR # 4. 判断备份是否成功 if [ $? -eq 0 ]; then # 直接打印成功信息到终端 echo "$(date +'%Y-%m-%d %H:%M:%S') - 增量备份执行成功" # 新增:打印新备份文件的存放目录(目标目录),清晰展示新文件位置 echo "📌 新备份文件(新增/修改)存放目录:$TARGET_DIR" # 可选:额外打印源目录,方便核对 # echo "📌 原始文件来源目录:$SOURCE_DIR" else # 直接打印失败信息到终端 echo "$(date +'%Y-%m-%d %H:%M:%S') - 错误:增量备份执行失败" # 可选:发送邮件/短信告警(按需启用,需自行配置邮件服务) # mail -s "附件增量备份失败" admin@xxx.com exit 1 fi # 注:已移除日志文件生成和归档逻辑,无需再清理旧日志
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:56:56

一站式AI开发环境:TensorFlow-v2.9镜像集成Jupyter、SSH和Conda

一站式AI开发环境:TensorFlow-v2.9镜像集成Jupyter、SSH和Conda 在深度学习项目从实验走向落地的过程中,一个稳定、可复现且易于协作的开发环境,往往比模型结构本身更能决定团队效率。现实中,“在我机器上能跑”的尴尬屡见不鲜—…

作者头像 李华
网站建设 2026/5/1 6:47:11

掌握Java 21外部内存API,3步实现C/C++级内存操控能力

第一章:Java 21外部内存API概述Java 21引入了全新的外部内存API(Foreign Memory API),旨在提供一种安全、高效的方式来访问JVM堆之外的内存区域。该API是Project Panama的重要组成部分,解决了传统ByteBuffer与JNI在处理…

作者头像 李华
网站建设 2026/5/1 6:51:10

从零搭建到自动编码:飞算JavaAI全流程落地指南,开发者速进

第一章:从零起步——飞算JavaAI初探飞算JavaAI是一款面向Java开发者的智能编程辅助工具,致力于通过人工智能技术提升代码编写效率与质量。它不仅支持代码自动生成、错误检测,还能根据上下文提供优化建议,适用于从新手到资深工程师…

作者头像 李华
网站建设 2026/5/1 9:12:53

常用文献检索网站有哪些 全面汇总与推荐

很多人刚进科研时,会陷入一个非常努力但效率极低的循环: 搜一堆论文 → 看摘要 → 存 PDF → 再也不打开。 问题不在你不认真,而在于: 你拿到的文献,本身就是随机噪声。 生成式 AI 出现后,文献检索正在从…

作者头像 李华
网站建设 2026/5/1 6:39:13

网络层详解

IP协议格式IPv4 头部字段总长度可变(最小 20 字节,最大 60 字节),各字段按顺序定义如下:1. 4 位 版本号(version)作用:指定 IP 协议的版本取值:对于 IPv4,固定…

作者头像 李华