rsync借助ssh通道在不同主机之间传输数据

目录

1. 概述

rsync借助ssh通道在不同主机之间传输数据模式,此时类似于scp命令的功能。

2 机器准备
2.1 本地主机
hostname: dscq-122
ip: 192.168.2.122
ssh_port: 22
username: root
password: 略
2.2 远程主机
hostname: dscq-201
ip: 192.168.2.201
ssh_port: 22
username: root
password: 略
3. 借助ssh key密钥实现数据免登陆验证加密传输

说明,如果事先设置了ssh key密钥免登陆验证,即可用rsync通过SSH方式免登陆
验证同步传输数据,这是生产场景常用的方法之一。

4. 配置ssh key密钥实现数据免登陆验证
[root@dscq-122 ~]# ssh-keygen
.
.
.
[root@dscq-122 ~]#  ssh-copy-id   -i  /root/.ssh/id_rsa.pub -p22 root@192.168.2.201
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.2.201's password:    ###输入主机密码###

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -p '22' 'root@192.168.2.201'"
and check to make sure that only the key(s) you wanted were added.
5. rsync借助ssh通道在不同主机之间传输数据模式的语法
5.1 将本地主机上的数据推送到远端主机指定目录

要求:将本地主机上的 /opt/tuisong.txt 推送到远端主机/tmp(需要保持源文件属性)

[root@dscq-122 ~]# cd /opt/
[root@dscq-122 opt]# ll
总用量 4
-rw-r--r--. 1 root root 36 10月 26 17:43 tuisong.txt
[root@dscq-122 opt]# cat tuisong.txt 
wo yuan lai zai 192.168.2.122 shang


[root@dscq-201 ~]# cd /tmp/
[root@dscq-201 tmp]# ll
总用量 0
drwx------. 2 git git 19 10月  9 09:47 gitaly-ruby634802258

命令:rsync [OPTION…] SRC… [USER@HOST:DEST]

rsync -avzP   /opt/tuisong.txt   -e 'ssh -p22' root@192.168.2.201:/tmp

关键语法说明:

  1. -avz相当于-vzrtopgDl,表示同步时文件和目录属性不变。参数细节见后文。
  2. -P显示同步的过程,可以用–progress 替换。
  3. -e ‘ssh -p22’,表示通过ssh的通道传输数据,当远程主机ssh端口为22时,那麽-p22 可省略。
[root@dscq-122 opt]# rsync -avzP   /opt/tuisong.txt   -e 'ssh -p22' root@192.168.2.201:/tmp
sending incremental file list
tuisong.txt
             36 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)

sent 127 bytes  received 35 bytes  2.97 bytes/sec
total size is 36  speedup is 0.22

查看远程主机/tmp目录

[root@dscq-201 ~]# cd /tmp/
[root@dscq-201 tmp]# ll
总用量 4
drwx------. 2 git  git  19 10月  9 09:47 gitaly-ruby634802258
-rw-r--r--. 1 root root 36 10月 26 17:43 tuisong.txt
5.2 将远端主机指定目录的数据拉取到本地主机上的指定目录

要求:将远程主机上的 /tmp/gitaly-ruby634802258 拉取到本地主机 /opt(需要保持源文件属性)

[root@dscq-201 ~]# cd /tmp/
[root@dscq-201 tmp]# ll
总用量 4
drwx------. 2 git  git  19 10月  9 09:47 gitaly-ruby634802258
-rw-r--r--. 1 root root 36 10月 26 17:43 tuisong.txt

[root@dscq-122 ~]# cd /opt/
[root@dscq-122 opt]# ll
总用量 4
-rw-r--r--. 1 root root 36 10月 26 17:43 tuisong.txt

命令:rsync [OPTION…] [USER@HOST:SRC] DEST…

rsync -avzP -e 'ssh -p22' root@192.168.2.201:/tmp/gitaly-ruby634802258    /opt/

关键语法说明:

  1. -avz相当于-vzrtopgDl,表示同步时文件和目录属性不变。参数细节见后文。
  2. -P显示同步的过程,可以用–progress 替换。
  3. -e ‘ssh -p22’,表示通过ssh的通道传输数据,当远程主机ssh端口为22时,那麽-p22 可省略。
[root@dscq-122 opt]# rsync -avzP -e 'ssh -p22' root@192.168.2.201:/tmp/gitaly-ruby634802258    /opt/
receiving incremental file list
gitaly-ruby634802258/
gitaly-ruby634802258/socket

sent 31 bytes  received 106 bytes  9.45 bytes/sec
total size is 0  speedup is 0.00
[root@dscq-122 opt]# ll
总用量 4
drwx------. 2  995  992 19 10月  9 09:47 gitaly-ruby634802258
-rw-r--r--. 1 root root 36 10月 26 17:43 tuisong.txt

注意:

1.操作时建立在用户之上的,如果ip地址前面没有用户,默认时当前登录的用户;
2.无论是从本地主机目录向外推送文件还是从远端主机目录拉取文件,都需要用户对此目录有操作权限。两边的用户权限必须同时满足才行。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值