rsync命令教程及示例

Rsync是一种流行的用于复制、备份和同步的工具。Rsync可以在本地或通过网络远程工作。 Rsync还可以用于将一些站点克隆到多个站点。像LuckyBackup这样流行的备份工具也在后台使用rsync。我们将在本教程中查看rsync的各种示例。下面是rsync的一些特性。

null
  • 复制目录
  • 备份选项
  • 丰富的功能选项
  • 试运行能力
  • 作为守护程序或服务器运行
  • 通过ssh工作
  • 权限保留

rsync命令语法

rsync命令的语法如下所示。

rsync OPTIONS  SOURCE  DESTINATION
  • 选项 用于更改rsync的行为
  • 来源 是数据路径的源
  • 数据 是数据路径的目标

rsync命令手册页

rsync命令有很多选项,可以使用下面这些命令来获取详细信息。

$ man rsync
Help With Man Page
手册页帮助

本地复制/同步文件

我们将在本地复制文件和目录。如果在本地挂载远程文件系统或挂载外部存储,通常会发生这种情况。在本例中,我们将同步名为 tmux.tar.gz 进入之内 /home/ismail/backup

$ rsync -zvh tmux.tar.gz /home/ismail/backup/

本地复制/同步目录

复制或同步目录与文件有点不同。我们将提供额外的选择 -a 就像下面一样。此复制操作将递归运行。

$ rsync -azvh test1 /home/ismail/backup/
Copy/Sync Directories Locally
本地复制/同步目录

启动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
Start Rsync Daemon, Service
启动Rsync守护程序,服务

将文件复制/同步到远程服务器

一个名为 tmux.tar.gz 可以复制如下。

$ rsync -zvh tmux.tar.gz  ubu1:/home/ismail/backup
Copy/Sync File To A Server
将文件复制/同步到服务器

或远程目标主机名为 ubu1号机组 我们也可以 指定如下所示的用户名。

$ rsync -zvh tmux.tar.gz  [email protected]:/home/ismail/backup

复制/同步目录 到远程服务器

目录可以复制到远程服务器,如下所示。但请记住,rsynd守护程序的用户权限可以阻止复制操作。

$ rsync -azvh test1 [email protected]:/home/ismail/backup/
Copy/Sync Directories To A Server
将目录复制/同步到服务器

从远程服务器复制/同步文件

我们可以使用远程服务器将文件传送到本地服务器。通常用于从备份还原。

$ rsync -zvh  ubu1:/home/ismail/backup/tmux.tar.gz .
Copy/Sync File From A Server
从服务器复制/同步文件

从远程服务器复制/同步目录

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

$ rsync -azvh  ubu1:/home/ismail/backup/test1 test_1
Copy/Sync Directories From A Server
从服务器复制/同步目录

SSH上的rsync传输

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

$ rsync -azvh -e ssh  ubu1:/home/ismail/backup/test1 test_1
Transmission Over Ssh
Ssh传输

显示同步操作进度

在传输大量文件时,了解传输的状态非常重要。我们可以显示与同步的进度 –进展 选项如下。

$ rsync -azvh --progress  ubu1:/home/ismail/backup/ tmux

删除不存在的文件

在同步操作中,目的是使源目录和目标目录相同。在某些情况下,文件或文件夹不存在于源中,但已存在于目标中。在这种情况下,要同步,双方的目标副本都应该被删除。 –删除 选项提供了这些工作机制。

$ rsync -avz --delete test1 test_1/
Deleting Option
删除选项

设置要传输的最大文件大小

另一个重要的过滤器选项是限制传输的最大文件大小。我们可以使用 –最大尺寸 选项如下。

$ rsync -avz --max-size='1K' test_1 test_1.bak
Set Max File Size To Transfer
设置要传输的最大文件大小

传输完成后删除源

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

$ rsync -avz --remove-source-files test_1 test_1.bak
Delete Source After Transfer
传输后删除源

试运行或只是测试或模拟

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

$ rsync -avz --dry-run test_1 test_1_back
Dry Run
排练

设置传输带宽

rsync的另一个有用的选择是限制带宽使用。这是一个非常重要的选择,因为有些网络的带宽有限。启用rsync会因为大容量传输而影响其他网络流量。我们可以很容易地限制网络流量 –bwlimit公司 选项如下。

$ rsync -avz --bwlimit=500k test_1 ubu1:/home/ismail/web_backup
Set Bandwidth
设置带宽

创建日志文件

Rsync通常用于非交互式批处理操作。在这些操作过程中,会有许多不同的操作或错误,如复制、删除、权限错误等。要获取有关这些事件的信息,应保存和查看日志。日志文件可以用 –日志文件 选项如下。

$ rsync -avz --log-file=back.log test_1 ubu1:/home/ismail/web_backup
Create Log File
创建日志文件

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享