需求:工作中经常需要将已经在一台宿主机上面的文件/文件夹复制到另外一台Exsi宿主机上面,那具体怎么实现呢?


大致步骤如下:

  • 启用SSH 并确保SSH Client是运行的状态
  • 登录Exsi 宿主机上面开始复制文件
  • 关闭SSH


  1. 启用SSH 并确保TSM-SSH在宿主机的防火墙是运行的状态(源Exsi宿主机和目的Exsi宿主机都要开启)

在vCenter 6.7,点击Exsi宿主机,在“配置”-“系统”-“服务”-”SSH“-"启动"(Exsi 5.5-6.5的步骤大致相似)

Exsi 宿主机之间复制文件_linux    


确认SSH-Client在防火墙是启用的状态(默认是禁用的):

esxcli network firewall get

esxcli network firewall ruleset list --ruleset-id sshClient

esxcli network firewall ruleset set --ruleset-id sshClient --enabled true


复制文件之后可以通过以下命令恢复其防火墙的设置:

esxcli networkfirewall ruleset list --ruleset-id sshClient

esxcli networkfirewall ruleset set --ruleset-id sshClient --enabled false

esxcli network firewall ruleset list --ruleset-id sshClient


  1. 登录Exsi 宿主机上面开始复制文件

可以使用putty或者其他工具远程连接到服务器,允许如下命令复制文件:

在源服务器上面:

例子:把当前服务器的Demo文件夹复制到192.168.1.1上面

scp -rp /vmfs/volumes/5a7c5684-0696249e-739c-246e969c2800/Demo root@192.168.1.11://vmfs/volumes/6127c9b4-834714d0-a6ee-78ac440d1000/

解释

scp: 命令用于 Linux 之间复制文件和目录,而Exsi的底层是基于Linux的,所以可以使用此命令来复制文件/文件夹

-rp: -r 是复制整个目录的意思;-p表示保留原文件的修改时间,访问时间和访问权限。

/vmfs/volumes/5a7c5684-0696249e-739c-246e969c2800/:表示Demo所在的目录,这个目录路径可以通过以下方式查看到:

Exsi 宿主机之间复制文件_复制文件_02

root@192.168.1.1://vmfs/volumes/6127c9b4-834714d0-a6ee-78ac440d1000/:root 是登录目的服务器的登录名;192.168.1.1 是目的服务器的IP地址,以同样的方式查到目的服务器的存储路径


回车之后会提示确认连接,如下图,输入“yes”, 然后输入目的服务器的密码,就可以复制文件了

Exsi 宿主机之间复制文件_复制文件_03


以下截图是文件复制开始至完成的截图:

Exsi 宿主机之间复制文件_复制文件_04


例子:将当前服务器的Demo下的iso文件复制到192.168.1.1上面:

命令如下:

scp /vmfs/volumes/5a7c5684-0696249e-739c-246e969c2800/Demo/demo.iso root@192.168.1.11://vmfs/volumes/6127c9b4-834714d0-a6ee-78ac440d1000/


  1. 关闭SSH

在vCenter 6.7,点击Exsi宿主机,在“配置”-“系统”-“服务”-”SSH“-"停止"


有任何问题,欢迎留言交流