Rsync 是一个功能强大且通用的命令行工具,用于在本地和远程系统之间同步文件和目录。它广泛用于备份、迁移和镜像操作。Rsync 的工作原理是比较源目录和目标目录,并且只传输差异。这意味着仅传输对文件和目录的更改,这可以节省大量时间和带宽,尤其是对于大文件。
同步功能
以下是使用 rsync 的一些主要功能和优势:
- 增量备份:Rsync 可用于执行文件和目录的增量备份,这意味着仅传输自上次备份以来所做的更改。这可以节省大量的时间和磁盘空间。
- 远程传输:Rsync 可用于通过网络连接在本地和远程系统之间传输文件和目录,这对于将数据备份到远程服务器非常有用。
- 带宽优化:Rsync 使用增量传输算法,该算法仅将更改传输到文件,而不是整个文件。这可以节省带宽并减少传输时间,尤其是对于大文件。
- 错误恢复:Rsync 具有内置的错误恢复功能,即使传输中出现中断或错误,也可以继续传输文件。
- 压缩:Rsync 可以在传输过程中压缩文件,这可以进一步减少传输时间和带宽使用。
在 Linux 上安装 Rsync
在 Linux 上安装 Rsync 通常很简单,因为它预装在大多数 Linux 发行版上。但是,如果未安装,则可以使用相应 Linux 发行版的默认包管理器安装它。
在基于 Ubuntu 和 Debian 的
sudo apt install rsync
在 CentOS 和 Fedora、Rocky Linux 上,你可以使用以下命令来安装 Rsync:
sudo dnf install rsync
rsync 命令的基本用法
Rsync 命令是用于在本地和远程系统之间进行文件传输和同步的强大工具。默认情况下,它使用 SSH 协议,但它也可以与其他协议(如 FTP、SFTP 等)一起使用。以下是 Rsync 命令的基本语法:
rsync [options] source destination
在此语法中,指要复制的文件或目录的路径,并引用要复制文件或目录的目标位置。它们是可用于修改 Rsync 命令行为的附加参数。
source
destination
options
同步命令选项
Rsync 命令有多个选项可用于自定义其行为。以下是一些最常用的选项:
选择 描述 -a
存档模式;保留权限、时间戳和其他属性 -v
详细模式;显示详细输出 -z
在传输过程中压缩数据 --delete
删除目标中源中不存在的文件 -P
显示传输期间的进度并恢复部分传输 --exclude
从传输中排除文件或目录 --dry-run
模拟传输,无需实际复制任何文件 您可以通过将这些选项添加到 Rsync 命令行来使用这些选项。例如,以下命令使用 、 和选项将目录从本地系统复制到远程系统:
-a
-v
-z
rsync -avz /path/to/local/directory/ user@remote:/path/to/remote/directory/
此命令使用该模式来保留文件和目录的权限、时间戳和其他属性。该模式显示详细的输出,该选项在传输过程中压缩数据以减少需要传输的数据量。
archive
verbose
compress
使用 rsync 命令的示例
下面是如何使用 Rsync 命令将目录从本地系统复制到远程系统的示例:
假设您有一个位于 的本地系统上命名的目录,并且您希望将其复制到具有 IP 地址和用户名的远程系统。您希望将目录复制到远程系统上的目录中。为此,您可以使用以下命令:
my-files
/home/user/my-files
192.168.77.20
remoteuser
/home/remoteuser
rsync -avz /home/user/my-files/ remoteuser@192.168.77.20:/home/remoteuser/
此命令使用该模式来保留文件和目录的权限、时间戳和其他属性。该模式显示详细的输出,该选项在传输过程中压缩数据以减少需要传输的数据量。
archive
verbose
compress
Rsync 命令是用于在本地和远程系统之间进行文件传输和同步的强大工具。凭借其众多选项和功能,可以对其进行自定义以适应各种用例。通过遵循基本语法并使用可用选项,您可以轻松地在系统之间复制和同步文件和目录。