首页 > 社交 > 科普中国

rsync用法教程(已验证)

常驻编辑 科普中国 2022-10-12 递归   基准   变动   备份   命令   参数   目标   模式   文件   目录   教程

六、增量备份(这个我没验证)

rsync 的最大特点就是它可以完成增量备份,也就是默认只复制有变动的文件。nIb拜客生活常识网

除了源目录与目标目录直接比较,rsync 还支持使用基准目录,即将源目录与基准目录之间变动的部分,同步到目标目录。nIb拜客生活常识网

具体做法是,第一次同步是全量备份,所有文件在基准目录里面同步一份。以后每一次同步都是增量备份,只同步源目录与基准目录之间有变动的部分,将这部分保存在一个新的目标目录。这个新的目标目录之中,也是包含所有文件,但实际上,只有那些变动过的文件是存在于该目录,其他没有变动的文件都是指向基准目录文件的硬链接。nIb拜客生活常识网

--link-dest参数用来指定同步时的基准目录。nIb拜客生活常识网

$ rsync -a --delete --link-dest /compare/path /source/path /target/path

上面命令中,--link-dest参数指定基准目录/compare/path,然后源目录/source/path跟基准目录进行比较,找出变动的文件,将它们拷贝到目标目录/target/path。那些没变动的文件则会生成硬链接。这个命令的第一次备份时是全量备份,后面就都是增量备份了。nIb拜客生活常识网

下面是一个脚本示例,备份用户的主目录。nIb拜客生活常识网

#!/bin/bash

# A script to perform incremental backups using rsync

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

readonly SOURCE_DIR="${HOME}"
readonly BACKUP_DIR="/mnt/data/backups"
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}"

上面脚本中,每一次同步都会生成一个新目录${BACKUP_DIR}/${DATETIME},并将软链接${BACKUP_DIR}/latest指向这个目录。下一次备份时,就将${BACKUP_DIR}/latest作为基准目录,生成新的备份目录。最后,再将软链接${BACKUP_DIR}/latest指向新的备份目录。nIb拜客生活常识网

七、配置项

-a--archive参数表示存档模式,保存所有的元数据,比如修改时间(modification time)、权限、所有者等,并且软链接也会同步过去。nIb拜客生活常识网

--append参数指定文件接着上次中断的地方,继续传输。nIb拜客生活常识网

--append-verify参数跟--append参数类似,但会对传输完成后的文件进行一次校验。如果校验失败,将重新发送整个文件。

相关阅读:

  • 中国第一代程序员王小波
  • WinForm(九)UI加载“大”数据
  • Vue实现无限级树形选择器(无第三方依赖)
  • Java中各种锁的介绍
  • 银行存款换成银行股吃分红可行吗?会有什么样的结果?
  • 科学分析吴亦凡大概率能判几年刑罚?
  • 5年期美国国债收益率升至2008年以来最高
  • 何谓LPR,如何定价 lpr是统一如何建立交友网站报价还是
  • 最短一天少了1.59毫秒,地球自转也在“赶时间”?
  • 从集成电路的“前世今生”来看待半导体的投资逻辑
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。