在很多大型的企业级地理数据库建设中,服务器一般都是Linux、AIX、Solaris等操作系统,一般情况下,用户使用Windows终端来访问这些操作系统,包括命令行终端,文件传输软件,常见的包括Putty、SSH、Xmanager等,根据每个用户先入为主,一般先学哪一个,就比较习惯于该软件,但是往往到客户那边情况就大相径庭了,有可能你习惯的工具人家根本都没有安装,那么碰到不太熟悉的环境,只掌握一种本领就显得捉襟见肘了。
这次就碰到了一个问题,我习惯使用putty+SSH这种软件,我希望获得用户AIX操作系统导出的DMP文件,拷贝到我的Windows操作系统中做测试,但是如果没有按照以Binary方式进行导出,该DMP在我的操作系统中是不能使用的,而且用户那边只有Xmanager,这个我也不太习惯,那么使用FTP传输不失为一个很好的解决方法。
使用FTP,可以直接设置以Binary的方式下载到用户本地,非常方便。
1、确保操作系统安装VSFTPD
可以使用如下命令行进行验证:
- [root@sdemachine3 ~]# cd /etc/vsftpd
- [root@sdemachine3 vsftpd]# ls
- ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
- [root@sdemachine3 vsftpd]#
如果没有安装,可以下载相关Tar包安装即可,vsftpd.conf包括对FTP服务配置参数的相关设置。
2、确保服务器FTP服务在开启状态
- [root@sdemachine3 vsftpd]# service vsftpd status
- vsftpd is stopped
- [root@sdemachine3 vsftpd]# service vsftpd start
- Starting vsftpd for vsftpd: [ OK ]
3:建议服务器的防火墙或者SELinux处于关闭状态,或者开放21端口。
4:使用Windows的CMD进行FTP连接即可。
FTP 服务器IP地址:
- C:\Users\Administrator>ftp 192.168.220.133
- 连接到 192.168.220.133。
- 220 (vsFTPd 2.2.2)
- 用户(192.168.220.133:(none)): root
- 331 Please specify the password.
- 密码:
- 230 Login successful.
5:连接成功之后,就可以输入类似命令
- ftp> help
- 命令可能是缩写的。 命令为:
- ! delete literal prompt send
- ? debug ls put status
- append dir mdelete pwd trace
- ascii disconnect mdir quit type
- bell get mget quote user
- binary glob mkdir recv verbose
- bye hash mls remotehelp
- cd help mput rename
- close lcd open rmdir
- ftp> dir
- 200 PORT command successful. Consider using PASV.
- 425 Failed to establish connection.
建议关闭Windows操作系统的防火墙即可解决按问题。
6、命令介绍
当断开连接之后,可以使用Open命令重新连接,也可以使用User命令继续连接该IP,DIR命令类似于DOS的列出所有目录文件列表,类似于Linux的ls命令:
- ftp> dir
- 远程主机关闭连接。
- ftp> open
- 到 192.168.220.133
- 连接到 192.168.220.133。
- 220 (vsFTPd 2.2.2)
- 用户(192.168.220.133:(none)): root
- 331 Please specify the password.
- 密码:
- 230 Login successful.
- ftp> dir
- 200 PORT command successful. Consider using PASV.
- 150 Here comes the directory listing.
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Desktop
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Documents
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Downloads
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Music
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Pictures
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Public
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Templates
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Videos
- -rw------- 1 0 0 3135 Aug 29 2013 anaconda-ks.cfg
- -rw-r--r-- 1 0 0 2062384 Jan 02 05:54 ceshi_ora_11016.trc
- -rw-r--r-- 1 0 0 14415564 Jan 02 06:51 ceshi_ora_11620.trc
- drwxr-xr-x 18 0 0 4096 Mar 05 02:12 gdal-1.9.2
- -rw-r--r-- 1 0 0 11532797 Mar 05 01:50 gdal192.zip
- -rw-r--r-- 1 0 0 59875 Aug 29 2013 install.log
- -rw-r--r-- 1 0 0 9548 Aug 29 2013 install.log.syslog
- drwxr-xr-x 2 0 0 4096 Mar 06 02:44 shp_data1
- -rwxr-xr-x 1 0 0 701 Feb 27 03:34 test.pl
- 226 Directory send OK.
- ftp: 收到 1164 字节,用时 0.06秒 18.77千字节/秒。
查看状态Status,重点关注类型ascii,也就是传输的数据以ascii码形式:
- ftp> status
- 连接到 192.168.220.133。
- 类型: ascii;详细: 开 ;铃声: 关 ;提示: 开 ;通配: 开
- 调试: 关 ;哈希标记打印: 关 。
如果希望用户使用binary方式传输,比如上述dir之后,在root的根目录下有一个test.pl文件,我希望使用binary形式传入到Windows终端。使用FTP获得文件使用get命令:
- ftp> binary
- 200 Switching to Binary mode.
- ftp> get test.pl
- 200 PORT command successful. Consider using PASV.
- 150 Opening BINARY mode data connection for test.pl (701 bytes).
- 226 Transfer complete.
- ftp: 收到 701 字节,用时 0.00秒 701000.00千字节/秒。
mget命令一次获取多个远程文件。
mget命令的一般格式为:mget 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。获得的test.pl文件在默认命令行输入的文件夹中,即C:\Users\Administrator文件夹中。
- C:\Users\Administrator>ftp 192.168.220.133
使用send命令,将本地文件传入到目标服务器中:
- ftp> send test1.pl
- 200 PORT command successful. Consider using PASV.
- 150 Ok to send data.
- 226 Transfer complete.
- ftp: 发送 701 字节,用时 0.00秒 701.00千字节/秒。
- ftp> dir
- 200 PORT command successful. Consider using PASV.
- 150 Here comes the directory listing.
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Desktop
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Documents
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Downloads
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Music
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Pictures
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Public
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Templates
- drwxr-xr-x 2 0 0 4096 Aug 29 2013 Videos
- -rw------- 1 0 0 3135 Aug 29 2013 anaconda-ks.cfg
- -rw-r--r-- 1 0 0 2062384 Jan 02 05:54 ceshi_ora_11016.trc
- -rw-r--r-- 1 0 0 14415564 Jan 02 06:51 ceshi_ora_11620.trc
- drwxr-xr-x 18 0 0 4096 Mar 05 02:12 gdal-1.9.2
- -rw-r--r-- 1 0 0 11532797 Mar 05 01:50 gdal192.zip
- -rw-r--r-- 1 0 0 59875 Aug 29 2013 install.log
- -rw-r--r-- 1 0 0 9548 Aug 29 2013 install.log.syslog
- drwxr-xr-x 2 0 0 4096 Mar 06 02:44 shp_data1
- -rwxr-xr-x 1 0 0 701 Feb 27 03:34 test.pl
- -rw-r--r-- 1 0 0 701 Apr 18 01:38 test1.pl
- 226 Directory send OK.
- ftp: 收到 1230 字节,用时 0.01秒 94.62千字节/秒。
同样也可以使用Put 命令,该命令与send比较类似。
put和mput命令用于向远程机发送文件;
Put命令的一般格式为:put 文件名
mput命令一次发送多个本地文件;
mput命令的一般格式为:mput 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。对其中的每个文件都要求用户确认是否发送。使用cd命令切换目标服务器的目录:
- ftp> cd /home/oracle
- 250 Directory successfully changed.
- ftp> dir
- 200 PORT command successful. Consider using PASV.
- 150 Here comes the directory listing.
- -rw-r--r-- 1 500 501 1170432000 Jan 14 01:01 DBCGW.DMP
- drwxrwxr-x 9 500 501 4096 Jan 14 01:07 apache-tomcat-7.0.42
- drwxrwxr-x 4 500 501 4096 Sep 09 2013 app
- -rwxrwxr-x 1 500 501 493 Jan 14 01:03 export.log
- -rwxrwxr-x 1 500 501 1402 Jan 14 01:04 import.log
- drwxr-xr-x 6 500 501 4096 Nov 29 08:24 sdeexe102
- 226 Directory send OK.
- ftp: 收到 411 字节,用时 0.01秒 29.36千字节/秒。
如果不希望本地默认路径为C:\Users\Administrator,希望修改为C:\为默认路径,使用lcd命令修改
- ftp> lcd c:\
- 目前的本地目录 C:\。
其他命令大家可以自己来进行测试和学习!