rsync拷贝服务器文件夹,通过SSH使用Rsync传输文件,复制和同步文件及目录

在本文中,我们将解释如何通过SSH使用rsync复制文件。当涉及在网络上的系统之间传输文件时,Linux和Unix用户可以使用许多工具,最流行的数据传输协议是SSH和FTP,虽然FTP很受欢迎,但总是喜欢使用SSH,因为它是传输文件最安全的方式。有专门的通过SSH进行文件传输的工具,如scp和sftp,但它们都没有rsync提供的所有功能,rsync可用于镜像数据、增量备份、在系统之间复制文件等。

e2949753c7c82b3e216f9bbf256dc64f.png

要求

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

1]、Ubuntu和Debian:

sudo apt install rsync

2]、CentOS和Fedora:

sudo yum install rsync

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

使用rsync通过SSH传输文件

使用rsync,你可以通过SSH将文件和目录从远程服务器传输到远程服务器。

使用rsync传输文件的一般语法如下:

Local to Remote: rsync [OPTION]... -e ssh [SRC]... [USER@]HOST:DEST

Remote to Local: rsync [OPTION]... -e ssh [USER@]HOST:SRC... [DEST]

其中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 user@12.12.12.12:/var/www/

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

如果尚未设置无密码SSH登录到远程计算机,系统将提示你输入用户密码。

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

rsync -a /opt/file.zip user@12.12.12.12:/var/www/file2.zip

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

rsync -a user@12.12.12.12:/var/www/file.zip /opt/

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

重要的是要知道rsync使用尾部斜杠/给源目录提供不同的处理,当源目录具有尾部斜杠时,rsync将仅将源目录的内容复制到目标目录,省略尾部斜杠时,源目录将复制到目标目录中。

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

rsync -a /home/ywnz/images/ user@12.12.12.12:/var/www/images/

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

rsync -a --delete /home/ywnz/images/ user@12.12.12.12:/var/www/images/

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

rsync -a -e "ssh -p 3322" /home/ywnz/images/ user@12.12.12.12:/var/www/images/

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

rsync -a -P /home/ywnz/images/ user@12.12.12.12:/var/www/images/

结论

我们已经向你展示了如何通过SSH使用rsync来复制和同步文件及目录,操作起来都不困难。

相关主题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用`rsync`命令和`ssh`命令来实现在多台 Linux 服务器之间并行拷贝文件文件夹。 `rsync`是一个优秀的文件同步工具,可以快速的将本地或远程服务器文件同步到其他服务器上,同时它可以使用 SSH 连接进行加密传输,确保数据传输的安全和完整性。 以下是一个示例脚本,可以并行地将文件文件夹拷贝到多个目标服务器上: ```bash #!/bin/bash # 源文件目录 src="source-dir" # 目标服务器的 IP 地址或域名 hosts=("server1" "server2" "server3") # 目标服务器的用户名 user="username" # 目标服务器的目标路径 dest="destination-dir" # 并行执行 rsync 命令 for host in "${hosts[@]}"; do ssh "$user@$host" "mkdir -p $dest && rsync -avz $src/ $user@$host:$dest/" & done # 等待所有任务完成 wait ``` 在这个脚本中,`src` 变量是需要拷贝的源文件目录,`hosts` 变量是一个包含目标服务器 IP 地址或域名的数组,`user` 变量是目标服务器的用户名,`dest` 变量是目标路径。该脚本通过 SSH 连接到每个目标服务器,并在后台运行 `rsync` 命令来完成拷贝任务。`wait` 命令用于等待所有任务完成后再结束脚本执行。 需要注意的是,该脚本需要在执行之前确保已经配置好了 SSH 免密登录,否则需要手动输入密码进行登录。同时,如果文件文件夹较大,可能需要增加 `rsync` 命令的额外选项来加速拷贝,例如使用 `--progress` 显示进度信息,或使用 `--partial` 支持断点续等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值