Rain WikiWindows · Linux · Android

rsync

命令行工具所有 Linux 发行版

rsync 可以在目录或计算机之间复制文件,并且仅传输更改的部分,这使得重复复制和备份变得非常高效。它支持本地运行或通过 SSH 运行,并使用归档选项 -a 保留权限、时间戳和链接。

1常用选项

-a(归档)可保留权限、时间戳、所有者和符号链接,并进行递归复制。-v 用于显示每个文件,-h 用于以易读的格式显示大小,-z 用于在网络传输时进行压缩,--progress 用于显示进度。

2末尾斜杠

rsync -a src/ dest/ 会复制 src 的内容到 dest 中。rsync -a src dest/ 则会复制目录本身,从而创建 dest/src。弄错这一点是使用 rsync 时最常见的错误。

3--delete 与 --dry-run

--delete 会删除目标路径中在源路径里已不存在的文件,从而实现完全镜像。--dry-run (-n) 会在不作任何更改的情况下显示将要执行的操作,在使用 --delete 时应始终先运行此选项。

如何将文件夹备份到服务器

  1. 先进行测试:rsync -avhn --delete ~/Documents/ user@server:/backup/Documents/
  2. 检查将要复制或删除的文件列表。
  3. 执行真实操作:rsync -avh --delete ~/Documents/ user@server:/backup/Documents/
  4. 稍后重复运行相同的命令;系统只会传输发生更改的部分。

注意事项

  • 如果配合 --delete 使用,错误的源路径可能会清空目标目录;请务必先使用 -n 运行。
  • 镜像并非备份历史:已被删除或损坏的文件也会被同步到镜像中。

资料来源

  1. rsync(1) 手册页 download.samba.org
  2. rsync 项目主页 rsync.samba.org

最后审核: