#ftp 127.0.0.1 21 输入远程空间的FTP IP和端口号,回车
然后根据提示输入用户名和密码即可!
ftp>lcd 本地工作目录
ftp>cd 远程目录
ftp>binary 采用二进制传输
ftp> tick 开启传输时的字节计数器,再执行一次即可关闭
ftp>mput 文件
问到一个简单的问题,ftp到远程服务器之后需要上传一个文件,但是我忘记了本地需要上传的文件名,因此需要查看本地目录。
解决方法:
1 lcd到本地目录
2 !ls查看本地目录的内容。
由于最近忙三个月没有写博文了,第一篇会是很简单的ftp命令,近期会继续撰写自己之前使用过的linux相关的文章 作为记录与分享。
初级 ftp vsftpd ssh samba crontab svn。
中级 mysql oracle apache+tomcat。
FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是LINUX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。
[root@www ~]# yum install ftp 安装ftp支持 redhat系列版本下命令 [root@www ~]# ftp 输入ftp命令 FTP> open 连接 命令 open ip地址 端口号 FTP> to 10.10.22.8 连接主机 FTP> admin 登入名 FTP> passwd 登入密码
连接成功
FTP> ! 从 ftp 子系统退出到外壳。 FTP> ? 显示 ftp 命令说明。? 和 help 相同。 FTP> append 使用当前文档类型配置将本地文档附加到远程电脑上的文档。 FTP> ascii 将文档传送类型配置为默认的 ASCII。 FTP> bell 转换响铃以在每个文档传送命令完成后响铃。默认情况下,铃声是关闭的。 FTP> binary(或bi) 将文档传送类型配置为二进制。 FTP> bye(或by) 结束和远程电脑的linux中ftp命令参数会话并退出linux中ftp命令参数。 FTP> cd 更改远程电脑上的工作目录。 FTP> close 结束和远程服务器的linux中ftp命令参数会话并返回命令解释程式。 FTP> debug 转换调试。当调试打开时,发送到远程电脑的每个命令都打印,前面是字符串“>”。默认情况下,调试是关闭的。 FTP> delete 删除远程电脑上的文档。 FTP> dir 显示远程目录文档和子目录列表。 FTP> disconnect 从远程电脑断开,保留linux中ftp命令参数提示。 FTP> get 使用当前文档转换类型将远程文档复制到本地电脑。 FTP >glob 转换文档名组合。组合允许在内部文档或路径名中使用通配符(*和?)。默认情况下,组合是打开的。 FTP >hash 转换已传输的每个数据块的数字签名 (#) 打印。数据块的大小是2048 字节。默认情况下,散列符号打印是关闭的。 FTP >help 显示linux中ftp命令参数命令说明。 FTP >lcd 更改本地电脑上的工作目录。默认情况下,工作目录是启动linux中ftp命令参数的目录。 FTP >literal 将参数逐字发送到远程linux中ftp命令参数服务器。将返回单个的linux中ftp命令参数回复代码。 FTP >ls 显示远程目录文档和子目录的缩写列表。 FTP >mdelete 删除远程电脑上的文档。 FTP >mdir 显示远程目录文档和子目录列表。能够使用 mdir 指定多个文档。 FTP >mget 使用当前文档传送类型将远程文档复制到本地电脑。 FTP >mkdir 创建远程目录。 FTP >mls 显示远程目录文档和子目录的缩写列表。 FTP >mput 使用当前文档传送类型将本地文档复制到远程电脑上。 FTP >open 和指定的linux中ftp命令参数服务器连接。 FTP >prompt 转换提示。假如关闭提示时 mget 及 mput 传送任何文档,linux中ftp命令参数在多文档传送过程中将提示允许您有选择地检索或存储文档。默认情况下,提示是打开的。 FTP >put 使用当前文档传送类型将本地文档复制到远程电脑上。 FTP >pwd 显示远程电脑上的当前目录。 FTP >quit 结束和远程电脑的linux中ftp命令参数会话并退出linux中ftp命令参数。 FTP >quote 将参数逐字发送到远程linux中ftp命令参数服务器。将返回单个的linux中ftp命令参数回复代码。 FTP >recv 使用当前文档传送类型将远程文档复制到本地电脑。Recv 和 get相同。 FTP >remotehelp 显示远程命令帮助。 FTP >rename 重命名远程文档。 FTP >rmdir 删除远程目录。 FTP >send 使用当前文档传送类型将本地文档复制到远程电脑上。Send 和put 相同。 FTP >status 显示linux中ftp命令参数连接和转换的当前状态。 FTP >trace 转换数据包跟踪。Trace 在运行linux中ftp命令参数命令时显示每个数据包的路由。 FTP >type 配置或显示文档传送类型。 FTP >user 指定远程电脑的用户。 FTP >verbose 转换 verbose 模式。假如打开,将显示任何 linux中ftp命令参数响应。在文档传送完成后,将同时显示和传送效率有关的统计信息。默认情况下,verbose 是打开的。
|
ASCII 和BINARY模式区别:
用HTML 和文本编写的文件必须用ASCII模式上传,用BINARY模式上传会破坏文件,导致文件执行出错。
BINARY模式用来传送可执行文件,压缩文件,和图片文件。
ASCII 模式和BINARY模式的区别是回车换行的处理,binary模式不对数据进行任何处理,asci模式将回车换行转换为本机的回车字符,比如Unix下是\n,Windows下是\r\n,Mac下是\r
ascii模式下会转换文件
不能说是不同系统对回车换行解释不同
而是不同的系统有不同的行结束符
unix系统下行结束符是一个字节,即十六进制的0A
而ms的系统是两个字节,即十六进制的0D0A
MAC系统是一个字节,即十六进制的0D
在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理.
cd 在远程机上改变工作目录
lcd 在本地机上改变工作目录
ascii 设置文件传输方式为ASCII模式
binary 设置文件传输方式为二进制模式
get(mget) 从远程机传送指定文件到本地机
put(mput) 从本地机传送指定文件到远程机
open 连接远程ftp站点
! 转到Shell中
从远程系统获取文件
get和mget命令用于从远程机上获取文件。get命令的一般格式为:
get 文件名
您还可以给出本地文件名,这个文件名是这个要获取的文件在您的本地机上创建时的文件名。如果您不给出一个本地文件名,那么就使用远程文件原来的名字。
mget命令一次获取多个远程文件。mget命令的一般格式为:
mget 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。
向远程系统发送文件
put和mput命令用于向远程机发送文件。Put命令的一般格式为:
put 文件名
mput命令一次发送多个本地文件,mput命令的一般格式为:
mput 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。对其中的每个文件都要求用户确认是否发送。
FTP的工作方式
FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。
Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
下面介绍一个这两种方式的工作原理:
Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道
上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端
的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到
Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端
口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为
客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无
法和内部网络的客户端建立一个新的连接,造成无法工作。
目标ftp服务器是一个非标准端口的ftp
1.通过shell登录
#ftp //shell下输入ftp命令,进入到ftp提示符
>open IP PORT //IP ,PORT对应为服务器的IP和端口号
或者直接使用一条语句
#ftp IP PORT
2.多文件下载(对目录无效)
如:下载目录下的所有文件(子目录是无法下载下来的)
>mget *
这样操作,下载每个文件都会提问,每次都要输入一个y
要去掉提问,就要先输入
>prompt off
3.解决:ftp命令行不支持目录下载
通过wget得到解决
#wget ftp://IP:PORT/* --ftp-user=xxx --ftp-password=xxx -r
注:
星号*必须有,否则下载下来的就一个文件index.html
-r参数就是用来目录下载的
附:
一个ftp多文件下载上传的shell脚本
ftp server: 192.168.0.100:2121
User/PWD : test/ 2009
到OUTBOX下下载所有的文件(不包括文件夹),并将test.txt上传到INBOX
内容如下
#!/bin/bash
#cd /home/ftptmp/
ftp -v -n 192.168.0.100 2121 <<EOF
user test 2009
binary
cd OUTBOX
prompt
mget *
cd ..
cd INBOX
put test.txt
close
bye
EOF
|