如何在 Linux 或 UNIX 下使用 rsync 传输文件
如何安装和使用 rsync 将文件和目录从一个位置(或一台服务器)同步到另一个位置?——新系统管理员经常问的一个问题。
rsync是一款适用于类 Unix 和类 Linux 系统的免费软件计算机程序,它可以将文件和目录从一个位置同步到另一个位置,同时在适当的情况下使用增量编码来最大限度地减少数据传输。rsync 的一个重要特性是,镜像在每个方向上仅通过一次传输即可完成,而大多数类似程序/协议都没有此功能。
那么 rsync 命令有什么独特之处?
它可以通过网络执行差异文件上传和下载(同步),仅传输已更改的数据。rsync 远程更新协议允许 rsync 通过网络连接仅传输两组文件之间的差异。
如何安装 rsync?
使用以下任一命令安装 rsync。如果您使用的是 Debian 或 Ubuntu Linux,请输入以下命令:
# apt-get install rsync
或者
$ sudo apt-get install rsync
如果您使用的是 Red Hat Enterprise Linux (RHEL) / CentOS 4.x 或更早版本,请输入以下命令:
# up2date rsync
RHEL / CentOS 5.x 或更新版本(或 Fedora Linux)用户输入以下命令:
# yum install rsync
始终使用 rsync 而不是 ssh
由于 rsync 在传输数据时不提供任何安全性,因此建议您通过 ssh 会话使用 rsync。这允许安全的远程连接。现在让我们看一些 rsync 命令的示例。
常用 rsync 命令选项
- --delete:删除发送方(系统)上不存在的文件
- -v:详细(尝试-vv获取更详细的信息)
- -e "ssh options":指定 ssh 作为远程 shell
- -a:归档模式
- -r:递归进入目录
- -z:压缩文件数据
任务:将文件从本地计算机复制到远程服务器
将文件从 /www/backup.tar.gz 复制到名为 openbsd.example.in 的远程服务器
$ rsync -v -e ssh /www/backup.tar.gz jerry@openbsd.example.in:~
输出:
Password: sent 19099 bytes received 36 bytes 1093.43 bytes/sec total size is 19014 speedup is 0.99
请注意,符号~表示用户主目录(/home/jerry)。
任务:将文件从远程服务器复制到本地计算机
将文件 /home/jerry/webroot.txt 从远程服务器 openbsd.example.in 复制到本地计算机的 /tmp 目录:
$ rsync -v -e ssh jerry@openbsd.example.in:~/webroot.txt /tmp
任务:将本地目录与远程目录同步
$ rsync -r -a -v -e "ssh -l jerry" --delete /local/webroot openbsd.example.in:/webroot
任务:将远程目录与本地目录同步
$ rsync -r -a -v -e "ssh -l jerry" --delete openbsd.example.in:/webroot/ /local/webroot
任务:将本地目录与远程 rsync 服务器同步,反之亦然
$ rsync -r -a -v --delete rsync://rsync.example.in/cvs /home/cvs
或者
$ rsync -r -a -v --delete /home/cvs rsync://rsync.example.in/cvs
任务:在我的“旧”和“新” Web 服务器/ftp 之间镜像目录
您可以使用以下命令在我的“旧”(my.old.server.com)和“新” Web 服务器之间镜像目录(假设 ssh 密钥设置为无密码身份验证)
$ rsync -zavrR --delete --links --rsh="ssh -l vivek" my.old.server.com:/home/lighttpd /home/lighttpd
阅读相关的先前文章
其他选项 - rdiff 和 rdiff-backup
rdiff 命令使用 rsync 算法。已创建一个名为 rdiff-backup 的实用程序,它能够通过网络在另一台服务器上维护文件或目录的备份镜像。rdiff-backup 将增量 rdiff delta 与备份一起存储,使用它就可以重新创建任何备份点。下次我将写关于这些实用程序的文章。
适用于 Windows Server/XP/7/8 的 rsync
请注意,如果您使用的是 MS-Windows,请尝试以下任一程序:
进一步阅读
=> 阅读 rsync 手册页
=>官方 rsync 文档