找回密码
 立即注册
查看: 348|回复: 0

[linux] 如何通过SSH使用Rsync复制文件

[复制链接]

19

主题

0

回帖

83

积分

注册会员

积分
83
发表于 2024-5-29 15:02:27 | 显示全部楼层 |阅读模式
本帖最后由 lavonXV 于 2024-5-29 15:06 编辑

1. 引言

Rsync是一种快速、灵活的文件复制工具,广泛用于备份和同步文件。在网络传输时,通过SSH加密连接,Rsync可以安全地在本地和远程主机之间传输文件。本文将介绍如何通过SSH使用Rsync复制文件,涵盖基础操作和常见配置。

1.1 Rsync和SSH简介

Rsync是一种用于在不同系统之间同步文件和目录的工具。其增量传输特性使得它在备份和数据同步中表现出色。SSH(Secure Shell)是一种用于安全登录和其他安全网络服务的协议,通过加密保护数据传输。

1.1.1 安装Rsync和SSH

在大多数linux发行版中,Rsync和SSH默认已经安装。如果未安装,可以使用包管理器进行安装:

在Debian/Ubuntu上:

  1. sudo apt-get install rsync openssh-client
复制代码


在CentOS/RHEL上:

  1. sudo yum install rsync openssh-clients
复制代码


1.2 使用Rsync通过SSH复制文件

通过SSH使用Rsync复制文件的基本语法如下:

  1. rsync -avz -e ssh source_file user@remote_host:destination_path
复制代码


1.2.1 示例:从本地复制文件到远程主机

假设我们有一个文件`example.txt`,需要将其从本地系统复制到远程主机的`/home/user/`目录。可以使用以下命令:

  1. rsync -avz -e ssh example.txt user@remote_host:/home/user/
复制代码


在此命令中:

(1) `-a` 选项启用归档模式,递归复制目录并保留文件权限。  
(2) `-v` 选项启用详细输出模式,显示传输过程中的详细信息。  
(3) `-z` 选项启用压缩,在传输过程中压缩数据。  
(4) `-e ssh` 选项指定使用SSH作为远程Shell。  

1.2.2 示例:从远程主机复制文件到本地

如果需要将远程主机的文件复制到本地,可以使用以下命令:

  1. rsync -avz -e ssh user@remote_host:/home/user/example.txt /local/destination/
复制代码


1.3 使用Rsync同步目录

除了单个文件,Rsync也可以用于同步整个目录。以下示例展示了如何将本地目录同步到远程主机:

  1. rsync -avz -e ssh /local/source_directory/ user@remote_host:/remote/destination_directory/
复制代码


需要注意的是,路径末尾的斜杠很重要。它指示Rsync复制目录的内容,而不是目录本身。

1.4 常见配置和选项

Rsync提供了许多配置选项,可以根据需要进行调整。

1.4.1 排除文件和目录

可以使用`--exclude`选项排除特定文件或目录。例如,要排除`.git`目录和`*.tmp`文件,可以使用以下命令:

  1. rsync -avz -e ssh --exclude '.git' --exclude '*.tmp' /local/source_directory/ user@remote_host:/remote/destination_directory/
复制代码


1.4.2 保持符号链接

使用`-l`选项可以保持符号链接,而不是复制它们所指向的文件:

  1. rsync -avzl -e ssh /local/source_directory/ user@remote_host:/remote/destination_directory/
复制代码


1.4.3 删除远程文件

使用`--delete`选项可以删除远程目录中本地不存在的文件,保持两边完全同步:

  1. rsync -avz --delete -e ssh /local/source_directory/ user@remote_host:/remote/destination_directory/
复制代码


1.5 安全性考虑

通过SSH使用Rsync传输文件时,建议使用SSH密钥进行认证,避免在命令行中输入密码。可以使用以下命令生成SSH密钥对:

  1. ssh-keygen -t rsa -b 4096
复制代码


然后,将公钥复制到远程主机:

  1. ssh-copy-id user@remote_host
复制代码


1.6 结论

通过SSH使用Rsync复制文件是一种安全、高效的方法,适用于各种备份和同步需求。本文介绍了Rsync和SSH的基础知识,以及如何使用它们进行文件传输和目录同步。希望本文能帮助读者更好地理解和应用Rsync,提高文件传输和备份的效率和安全性。

资讯 | 优惠 | 测评 | 技术
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-5 02:41 , Processed in 0.061883 second(s), 24 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表