安卓系统

如何通过SSH通过rsync传输文件

rsync实现Linux下文件的备份同步 [LinuxCast IT播客]

rsync实现Linux下文件的备份同步 [LinuxCast IT播客]

目录:

Anonim

在网络上的系统之间传输文件时,Linux和Unix用户可以使用许多工具。

最受欢迎的数据传输协议是SSH和FTP。 尽管FTP非常流行,但始终首选使用SSH,因为它是传输文件的最安全方法。

有专门的工具可以通过SSH进行文件传输,例如 scp sftp 但是它们都不具有 rsync 提供的所有功能。 rsync 可用于镜像数据,增量备份,在系统之间复制文件等等。

在本教程中,我们将说明如何通过SSH使用 rsync 复制文件。

要求

  • 必须在目标系统和源系统上都安装 rsync 实用程序。 如果尚未安装,则可以使用发行版的软件包管理器进行安装:

    Ubuntu和Debian:

    sudo apt install rsync

    CentOS和Fedora:

    sudo yum install rsync

    SSH访问远程计算机。

    运行 rsync 命令的用户和远程SSH用户必须具有适当的权限才能读取和写入文件。

使用 rsync 通过SSH传输文件

使用 rsync ,您可以通过SSH在远程服务器之间传输文件和目录。

使用 rsync 传输文件的常规语法如下:

Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

其中 SRC 是源目录, DEST 是目标目录, USER 是远程SSH用户名, HOST 是远程SSH主机或IP地址。

较新版本的rsync已配置为使用SSH作为默认远程Shell,因此您可以省略 -e ssh 选项。

例如,要将单个文件 /opt/file.zip 从本地系统传输到IP为 12.12.12.12 的远程系统上的 /var/www/ 目录,请运行:

rsync -a /opt/file.zip [email protected]:/var/www/

-a 选项代表存档模式,它将以递归方式同步目录,传输特殊设备和块设备,保留符号链接,修改时间,组,所有权和权限。

如果该文件存在于远程服务器上,它将被覆盖。 如果要使用其他名称保存文件,请指定新名称:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

要将数据从远程传输到本地计算机,请使用远程位置作为源,并使用本地位置作为目标:

rsync -a [email protected]:/var/www/file.zip /opt/

通过SSH使用 rsync 传输目录与传输文件相同。

重要的是要知道 rsync 对源目录使用后跟斜杠 / 不同处理。 当源目录带有斜杠时, rsync 只会将源目录的内容复制到目标目录。 当省略斜杠时,源目录将被复制到目标目录中。

例如,要将本地 /opt/website/images/ 目录传输到远程计算机上的 /var/www/images/ 目录,您可以输入:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

如果要同步本地和远程目录,请使用 --delete 选项。 使用此选项时要小心,因为如果源目录中不存在文件,它将删除目标目录中的文件。

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

如果远程主机上的SSH正在侦听默认端口 22 以外的端口,请使用 -e 选项指定端口。 例如,如果SSH正在侦听端口 3322 ,则可以使用:

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

当传输大量数据时,建议在屏幕会话中运行 rsync 命令或使用 -P 选项,该选项告诉 rsync 在传输过程中显示进度条并保留部分传输的文件:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

结论

我们已经向您展示了如何通过SSH使用 rsync 来复制和同步文件和目录。

您可能还想阅读如何使用 rsync 排除文件或目录。

如有任何疑问,请随时发表评论。

rsync终端