Rsync是一种流行的用于复制、备份和同步的工具。Rsync可以在本地或通过网络远程工作。 Rsync还可以用于将一些站点克隆到多个站点。像LuckyBackup这样流行的备份工具也在后台使用rsync。我们将在本教程中查看rsync的各种示例。下面是rsync的一些特性。
- 复制目录
- 备份选项
- 丰富的功能选项
- 试运行能力
- 作为守护程序或服务器运行
- 通过ssh工作
- 权限保留
rsync命令语法
rsync命令的语法如下所示。
rsync OPTIONS SOURCE DESTINATION
- 选项 用于更改rsync的行为
- 来源 是数据路径的源
- 数据 是数据路径的目标
rsync命令手册页
rsync命令有很多选项,可以使用下面这些命令来获取详细信息。
$ man rsync

本地复制/同步文件
我们将在本地复制文件和目录。如果在本地挂载远程文件系统或挂载外部存储,通常会发生这种情况。在本例中,我们将同步名为 tmux.tar.gz
进入之内 /home/ismail/backup
$ rsync -zvh tmux.tar.gz /home/ismail/backup/
本地复制/同步目录
复制或同步目录与文件有点不同。我们将提供额外的选择 -a 就像下面一样。此复制操作将递归运行。
$ rsync -azvh test1 /home/ismail/backup/

启动Rsync守护程序,服务
在我们的示例中,我们使用的是Ubuntu发行版,但这也适用于其他发行版。Rsync可以作为守护进程或服务运行。Rsync守护进程称为rsyncd,需要一些配置才能启动。以下简单配置可用作rsync配置。将以下配置放到 /etc/rsyncd.conf文件
uid = rsync gid = rsync use chroot = no pid file = /var/run/rsyncd.pid
然后跑 系统控制 启动服务。
$ sudo systemctl start rsync.service
并检查守护进程的状态。
$ sudo systemctl status rsync.service

将文件复制/同步到远程服务器
一个名为 tmux.tar.gz 可以复制如下。
$ rsync -zvh tmux.tar.gz ubu1:/home/ismail/backup

或远程目标主机名为 ubu1号机组 我们也可以 指定如下所示的用户名。
$ rsync -zvh tmux.tar.gz [email protected]:/home/ismail/backup
复制/同步目录 到远程服务器
目录可以复制到远程服务器,如下所示。但请记住,rsynd守护程序的用户权限可以阻止复制操作。
$ rsync -azvh test1 [email protected]:/home/ismail/backup/

从远程服务器复制/同步文件
我们可以使用远程服务器将文件传送到本地服务器。通常用于从备份还原。
$ rsync -zvh ubu1:/home/ismail/backup/tmux.tar.gz .

从远程服务器复制/同步目录
我们还可以从远程服务器同步目录和文件。此操作类似于文件操作。在本例中,我们将同步名为 ubu1
我们的本地目录 test_1
. 远程目录是 /home/ismail/backup/test1
$ rsync -azvh ubu1:/home/ismail/backup/test1 test_1

SSH上的rsync传输
Rsync守护进程提供文件的远程传输,但存在一个问题。因为我以明文形式传输数据,所以不太安全。另一种选择是什么?因为我们总是使用ssh来解决问题。正如我们所知道的,ssh具有隧道能力,可以通过安全的加密隧道传输数据。我们将提供 -e宋承宪 rsync命令的参数。rsync命令的另一部分是相同的。
$ rsync -azvh -e ssh ubu1:/home/ismail/backup/test1 test_1

显示同步操作进度
在传输大量文件时,了解传输的状态非常重要。我们可以显示与同步的进度 –进展 选项如下。
$ rsync -azvh --progress ubu1:/home/ismail/backup/ tmux
删除不存在的文件
在同步操作中,目的是使源目录和目标目录相同。在某些情况下,文件或文件夹不存在于源中,但已存在于目标中。在这种情况下,要同步,双方的目标副本都应该被删除。 –删除 选项提供了这些工作机制。
$ rsync -avz --delete test1 test_1/

设置要传输的最大文件大小
另一个重要的过滤器选项是限制传输的最大文件大小。我们可以使用 –最大尺寸 选项如下。
$ rsync -avz --max-size='1K' test_1 test_1.bak

传输完成后删除源
我们已经找到了删除选项,如果源文件中不存在目标文件,该选项将删除目标文件。如果不需要源文件,也可以使用类似的选项来删除源文件。例如,我们希望在同步操作后删除备份文件和文件夹,因为我们不需要它们。在这里我们可以使用 –删除源文件 选项t完成此操作。
$ rsync -avz --remove-source-files test_1 test_1.bak

试运行或只是测试或模拟
到目前为止,在发出命令之后,每一个变化都是真实的。在某些情况下,我们可能只想看到命令会发生什么,但不想启动可以使用的操作 –试运行 选项。
$ rsync -avz --dry-run test_1 test_1_back

设置传输带宽
rsync的另一个有用的选择是限制带宽使用。这是一个非常重要的选择,因为有些网络的带宽有限。启用rsync会因为大容量传输而影响其他网络流量。我们可以很容易地限制网络流量 –bwlimit公司 选项如下。
$ rsync -avz --bwlimit=500k test_1 ubu1:/home/ismail/web_backup

创建日志文件
Rsync通常用于非交互式批处理操作。在这些操作过程中,会有许多不同的操作或错误,如复制、删除、权限错误等。要获取有关这些事件的信息,应保存和查看日志。日志文件可以用 –日志文件 选项如下。
$ rsync -avz --log-file=back.log test_1 ubu1:/home/ismail/web_backup

相关文章: TCP和UDP中的端口20是什么?