如何使用rsync编写增量备份脚本

问题描述 投票:0回答:0

我正在尝试使用

rsync
实现自定义备份功能。为此,我修改了以下现有代码https://linuxconfig.org/how-to-create-incremental-backups-using-rsync-on-linux如下:

#!/bin/zsh
#https://linuxconfig.org/how-to-create-incremental-backups-using-rsync-on-linux

# A script to perform incremental backups using rsync

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

incremental_bckp_rsync_dir(){
  readonly SOURCE_DIR="/$1"
  readonly BACKUP_DIR="/$2/$1"
  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 -av --delete \
    "${SOURCE_DIR}/" \
    --link-dest "${LATEST_LINK}" \
    --exclude=".cache" \
    "${BACKUP_PATH}"
  
  rm -rf "${LATEST_LINK}"
  ln -s "${BACKUP_PATH}" "${LATEST_LINK}"
}


incremental_bckp_rsync_file(){
  readonly SOURCE_FILE="/$1/$3"
  readonly BACKUP_DIR="/$2/$1"
  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}"
  mkdir -p "${BACKUP_PATH}"
  
  rsync -av --delete \
    "${SOURCE_FILE}" \
    --link-dest "${LATEST_LINK}" \
    --exclude=".cache" \
    "${BACKUP_PATH}"
  
  rm -rf "${LATEST_LINK}"
  ln -s "${BACKUP_PATH}" "${LATEST_LINK}"
}

incremental_bckp_rsync_file path/to/file path/to/backup "the_file.txt"

它确实成功备份了文件,但是备份目录的大小(通过命令

du -h path/to/backup
获得)似乎每次运行脚本时都会加倍(这意味着它不是增量的,据我所知。是有办法解决吗?

backup rsync incremental
© www.soinside.com 2019 - 2024. All rights reserved.