ftp[root@ht root]# cat ftpaaa.sh
#!/bin/bash
hostname=192.168.1.238
user=f5
password=f5ftp -i -v -n $hostname <binary
lcd /tmp
cd /tmp
mput *
byeEND_FTP 注解:
1. -i 当传输多文件时关闭交互式提示 -n 不受.netrc文件的影响。(ftp默认为读取.netrc文件中的设定) -v 显示详细信息
2. << 是使用即时文件重定向输入。
3.
END_FTP是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。
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无
法和内部网络的客户端建立一个新的连接,造成无法工作。
阅读(350) | 评论(0) | 转发(0) |