📅  最后修改于: 2023-12-03 15:32:41.385000             🧑  作者: Mango
rsync 是一个开源软件,用于在本地或远程计算机之间同步文件和目录。它可以在本地的文件系统之间同步文件,也可以通过 ssh 连接同步远程计算机之间的文件。
rsync 可以复制文件、文件夹和链接,支持多种选择和过滤器,非常适合备份和同步文件。它使用基于比较的算法减少数据传输并节省带宽和时间。
rsync 可以在 Linux、macOS 和 Windows(通过 Cygwin 或 Windows Subsystem for Linux)上运行。在大多数 Linux 发行版中,rsync 都已经默认安装了。可以通过以下命令检查 rsync 是否已经安装:
rsync --version
如果显示如下信息,则表示 rsync 已经安装:
rsync version 3.1.2 protocol version 31
如果没有安装,则可以使用以下命令安装:
在 Debian / Ubuntu 系统上:
sudo apt-get update
sudo apt-get install rsync
在 Fedora / CentOS / RHEL 系统上:
sudo yum install rsync
将本地文件复制到远程主机:
rsync [源文件] [目标主机:目标路径]
例如,下面的命令将本地的 file.txt
文件复制到 192.168.0.100
主机的 /data/backup
目录中:
rsync file.txt 192.168.0.100:/data/backup
将远程主机上的文件复制到本地:
rsync [来源主机:源路径] [目标路径]
例如,下面的命令将 192.168.0.100
主机上的 /data/backup/file.txt
文件复制到本地的 ~/backup
目录中:
rsync 192.168.0.100:/data/backup/file.txt ~/backup
rsync 可以使用过滤器忽略不需要复制的文件或目录。过滤器有两种类型:include(包含)和exclude(排除)。它们通常被定义为 --include
和 --exclude
选项。
例如,以下命令将只复制 ~/Documents
目录及其子目录中的所有 .txt
文件,而忽略其他类型的文件和目录:
rsync -avz --include '*/' --include '*.txt' --exclude '*' ~/Documents/ remote:backup/
该命令中,-avz
选项表示将以递归方式复制所有文件,并保留所有文件属性。--include '*/'
表示包含所有子目录,--include '*.txt'
表示包含所有 .txt
文件,--exclude '*'
表示排除所有其他类型的文件和目录。
rsync 可以通过 ssh 连接到远程计算机并执行操作。可以使用 --rsh
选项指定 ssh 客户端程序。
例如,以下命令使用 ssh 连接到远程主机,并将 ~/Documents
目录复制到远程主机的 /backup
目录中:
rsync -avz -e ssh ~/Documents remote:backup/
-e
选项表示使用 ssh 客户端。如果没有指定,则默认使用 rsh 客户端。
rsync 是一个非常强大和实用的工具,可用于备份和同步文件和目录。通过掌握 rsync 基本用法和过滤器的使用,可以更有效地使用 rsync,从而提高工作效率。