代码改变世界

Windows与Linux拷贝数据

2012-06-18 10:17  听风吹雨  阅读(30103)  评论(1编辑  收藏  举报

一、背景

在维护Linux服务器的时候,我们有时需要拷贝Windows下的文件到服务器,这个时候我们需要如何通讯呢?

在虚拟机中,我们有时候需要和本机进行数据的交互,可能会繁琐通过网络传送数据,或者直接通过U盘这样的方式在本机和虚拟机之间进行数据的交互。

 

二、过程

Windows下拷贝文件(tuning-primer.sh)到Ubuntu服务器上:

方式一:使用Putty里面的PSCP.EXE进行拷贝

1.      下载PSCP.EXE:putty.zip,拷贝PSCP.EXE到E盘目录下;

2.      在运行里输入cmd,进入E盘,输入下面的命令:

E:\>pscp.exe tuning-primer.sh bfadmin@192.168.1.126:/tmp/


方式二:使用Ubuntu(DeskTop-10)的操作界面进行拷贝:

1.      首先你需要为你的虚拟机里面的Ubuntu分配一个内网IP,可参考:VMware(Ubuntu)设置独立IP地址

2.      在Ubuntu的【位置】-【连接到服务器】-【服务器类型】中选择【Windows共享】,在【服务器】中输入你Windows的IP地址,点击【连接】这样你就可以访问你Windows下的所有文件了。

3.      如何使用命令进行上面的操作,待以后测试;

方式三:可参考:VMWARE WORKSTATION 虚拟机(客户机)创建和主机共享文件夹(为经过测试)

方式四:如果是使用VMware作为虚拟机的话,可以安装VMware Tools,直接拖文件到虚拟机就可以了。

方式五:以FTP的形式进行下载:Wget http://192.168.1.10:81/greenplum.bin /tmp/greenplum.bin

 

三、遇到问题

我在本地Windows拷贝到本地虚拟机的Ubuntu(DeskTop-10)下,提示下面的错误:

E:\>pscp.exe e:\downloads\jdk-6u31-linux-i586-rpm.bin chen@192.168.1.147:/tmp/

测试拷贝到126(一个内网地址的机器,Server版本)就没问题


后来发现是我的Ubuntu是没装ssh,执行下面的命令查看并安装:

#ssh

#ufw status

#apt-get -y install openssh-client openssh-server

再次测试,成功了:


 

四、注意事项

1.      PSCP是Putty安装包所带的远程文件传输工具,使用和Linux下scp命令相似。

2.      建议将PSCP.EXE放到C:\WINDOWS\system32下面,这样就可以在任何地方调用了。

3.      使用PSCP.EXE ?查看命令参数与选项。

4.      PSCP.EXE的常用方法:

1)     把本地文件file传输到Linxu服务器的/tmp/

E:\pscp.exe file root@192.168.1.147:/tmp/

或者E:\pscp.exe -l root file 192.168.1.147:/tmp/(这里-l root要在file之前)

2)     把本地目录dir、文件file传输到Linux服务器的/tmp/,并指定服务器端口2009

E:\pscp.exe -P 2009 -r dir file root@192.168.1.147:/tmp/

3)     把服务器上的/tmp/file文件取回本地当前目录

E:\pscp.exe root@192.168.1.147:/tmp/file

4)     把服务器上的/tmp/dir目录取回本地"D:\data\"

E:\pscp.exe -r root@192.168.1.147:/tmp/dir "D:\data\"

 

五、参考文献

Putty官网

pscp实现远程文件和文件夹传输

VMWARE WORKSTATION 虚拟机(客户机)创建和主机共享文件夹