Linux使用rsync实现增量备份

#!/bin/bash

# A script to perform incremental backups using rsync

set -o errexit
set -o nounset
set -o pipefail

readonly SOURCE_DIR="你要备份的文件夹路径"
readonly BACKUP_DIR="你要将这个文件夹备份到什么路径下"
readonly DATETIME="$(date '+%Y%m%d_%H%M%S')"
readonly BACKUP_PATH="${BACKUP_DIR}/${DATETIME}"
readonly LATEST_LINK="${BACKUP_DIR}/latest"

mkdir -p "${BACKUP_DIR}"

rsync -avc --delete \
  "${SOURCE_DIR}/" \
  --link-dest "${LATEST_LINK}" \
  "${BACKUP_PATH}"

rm -rf "${LATEST_LINK}"
ln -s "${BACKUP_PATH}" "${LATEST_LINK}"

这段代码是一个用来执行增量备份的 Bash 脚本,它使用 rsync 命令来实现本地增量备份。每次执行的时候,脚本会对比现在的源目录里的文件和上一次备份出来的文件的区别,只把其中和上次备份不一样的文件拷贝出来,和上次备份一样的就建立一个硬链接,避免重复复制文件造成一模一样的文件复制多次。

脚本首先定义了一些变量,包括源目录 SOURCE_DIR,备份目录 BACKUP_DIR,当前日期和时间 DATETIME,备份路径 BACKUP_PATH 和最新链接 LATEST_LINK。

接下来,脚本使用 mkdir -p 命令创建备份目录。

然后,脚本使用 rsync 命令执行增量备份。它使用 -avc 选项来保留文件属性并进行校验,(如果要只根据修改时间来判定文件是否相同就去掉c),使用 --delete 选项来删除目标目录中多余的文件,并使用 --link-dest 选项来指定上一次备份,以便只备份改变的文件。

最后,脚本删除最新链接并创建一个新的指向当前备份路径的链接作为最新备份。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值