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 时应始终先运行此选项。
如何将文件夹备份到服务器
- 先进行测试:
rsync -avhn --delete ~/Documents/ user@server:/backup/Documents/ - 检查将要复制或删除的文件列表。
- 执行真实操作:
rsync -avh --delete ~/Documents/ user@server:/backup/Documents/ - 稍后重复运行相同的命令;系统只会传输发生更改的部分。
注意事项
- 如果配合
--delete使用,错误的源路径可能会清空目标目录;请务必先使用 -n 运行。 - 镜像并非备份历史:已被删除或损坏的文件也会被同步到镜像中。
相关文章
- SSH 密钥SSH 密钥身份验证的工作原理、如何使用 ssh-keygen 创建密钥、将其安装到服务器上以及如何保护它。
- 使用 find 查找大文件和旧文件如何使用 find 在 Linux 上列出大文件或旧文件、安全地预览它们,并仅删除你已检查过的内容。
- cron 与 crontabcron 如何运行计划任务、五个 crontab 时间字段、系统 cron 文件的存放位置以及与 systemd 定时器的对比。
资料来源
- rsync(1) 手册页 download.samba.org
- rsync 项目主页 rsync.samba.org
最后审核: