缘起
最近为了排查线上系统问题,让运维小哥导一份线上系统日志,运维小哥觉得线上导线下觉得十分麻烦,而我只需要在线上开发机可看就可以了,这个就把运维小哥难住了:他觉得每次都需要配置ssh的密钥特别麻烦。本文简单介绍如何在网络互通,但是没有ssh密钥的服务器之间传输文件。
问题描述
现在有两台服务器SA/SB
,一台开发机a
,现在a
能直接通过ssh
登录到SA
和SB
,但是SA
不能直接ssh
登录SB
,SB
不能ssh
登录SA
。现在我要将SA
的一个文件FIle
拷贝到SB
,什么样的方式最快?
解决方案
方法1:
在SA
上通过python
启动一个http
服务器
chenfu@uchadoop:~$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
在SB
上通过wget
获取文件:
wget http://${SB-ip-address}:8000/File
方法2:
在SB
上:
# file-name为传输到SB后的文件名
nc -l 9999 > ${file-name}
在SA
上:
# File为需要传输的文件
nc ${SB-ip-address} 9999 < File
NOTE:
nc
是个很有趣的命令,有兴趣可以详细了解。