有时候直接在Linux服务器上通过 wget 或 curl 工具下截比较大的网络文件时会比较慢,这时我们通常会改用在Windows平台通过迅雷等更加现代化的下载功具下好目标文件(迅雷开会员才能更高速的恶心操作是题外话哈,话说我也送了不少钱给迅雷~~~),这时就面临要把Windows平台下的文件传送到远程Linux服务器上的问题了。
把Windows平台下的文件传送到远程Linux服务器上的方法有很多,这里简单记录下在当前流行的Linux远程管理工具SecureCRT下如何操作及注意事项!
先使用SecureCRT通过SSH2协议连接上远程主机,在打开的远程终端(Terminal)窗口Tab标题页签上右键->【Connect SFTP Session】,便可打开SFTP会话窗口(SFTP即Secure File Transfer Protocol):
SFTP会话进程同时监控着当前主机和远程主机两侧的目录和文件资源,可以通过 lpwd 命令查看当前主机本地的当前目录,通过 pwd 查看远程主机的当前目录,以确认两侧主机的当前工作目录是我们想要的:
如果发现本地主机的当前目录不对,则可以通过 lcd 命令将目录切换到想要的目录!同理,如果发现远程主机的当前目录不对,则可以通过 cd 命令将目录切换到想要的目录:
在切换本地主机当前目录时,通常Windows平台下的目录路径可能会搞得比较深,纯手工输起来比较费劲(虽然可以借助Tab智能输入),这时其实在输完 lcd 命令加空格后,直接到Windows下将长长的路径复制一下,回到SFTP对话框,光标定位到 lcd 命令后进行右键,便会自动粘贴上了去!
如果 lcd或cd 后面跟的目录明明存在,却报“系统找不到指定的文件。”,那多半是你路径中含有中文,而当前SFTP会话使用的字符集编码又不是UTF-8(SFTP对话框中中文乱码往往也是这个原因):
此时通过菜单Options->Session Options...打开Session Options设置对话框,左侧Category中定位到Terminal->Appearance页的Fonts区,修改Character encoding的选定值为UTF-8即可:
现在一切都准备就绪了,现在我们来向远程Linux主机上传(推送)一个本地文件试试,推送文件到远程主机使用的是 put 命令:
可以看到我们已经像远程主机/root目录下上传了一个479416KB(468MB)的压缩文件,速度还是比较快的!
现在我们来尝试一下将远程主机/root目录那个anaconda-ks.cfg文件下载到本地当前目录,从远程主机下载文件的命令是 get :
其实使用SecureCRT的SFTP会话从本地Windows操作系统向远程Linux主机上传文件还可以直接通过拖拽文件到SFTP对话框的方式进行,但一样要注意:如果目标文件所在的各层目录或文件名本身含有中文,还是要先将SFTP会话所使用的字符集编码改为UTF-8:
最后附上SFTP常用命令的释义:
help:显示该SFTP提供所有的命令及用法
pwd:打印/显示远程主机当前上传下载目录
lpwd:打印/显示本地主机当前上传下载目录
ls:列出远程主机上传下载目录有哪些文件
lls:列出本地主机上传下载目录有哪些文件
cd:改变远程主机上传下载目录
lcd:改变本地主机上传下载目录
get:将远程主机上传下载目录中的目标文件下载到本地主机上传下载目录
put:将本地主机上传下载目录中的目标文件上传到远程主机上传下载目录
quit或exit:断开SFTP连接