主动模式和被动模式转自http://my.oschina.net/binny/blog/17469
#!/bin/bash
ftp -i -n -v IP << EOF
#-i 关闭交互模式
#-n 关闭自动登录功能
#-v 程序运行时显示详细的处理信息
user * *
lcd /tmp
passive 被动模式
prompt off 关闭交互确认
binary
cd test01/
mget *
close
bye
EOF
===========================================================================================================================
今天让整个ftp的下载脚本,只能下载文件后来又百度了一下能不能直接下载目录- - :
使用wget下载整个FTP目录
#wget ftp://IP:PORT/* --ftp-user=xxx --ftp-password=xxx -r -c
备注:星号*必须有,否则下载下来的就一个文件index.html
-r参数就是用来目录下载的
-c是使用断点续传,服务器要支持
可以写到shell脚本中,后台执行。
#!/bin/sh
wget ftp://IP:PORT/* --ftp-user=xxx --ftp-password=xxx -r -c
保存为wget.sh,并赋予可执行权限
# chmod +x wget.sh
后台执行这个脚本,在命令后加“&”即可
./wget.sh &
如果希望把执行结果输出到文件的话,前面加 nohup,默认输出文件名为 nohup.out
nohup ./wget.sh &
如果要限速的话,加上--limit-rate=100k,代表限速100k,-c是断点续传的意思。
弄了半天还是linux命令强大啊
转自http://www.kevinick.com/archives/?article-401.html
============================================================================================
expect写的ftp的脚本 纯属为了好看
#!/bin/bash
expect <<END
spawn ftp IP
expect ":root*" {send "*
"}
expect "Password" {send "*
"}
expect "ftp>" {send "cd test01
"}
expect "ftp>" {send "lcd /tmp
"}
expect "ftp>" {send "prompt off
"}
expect "ftp>" {send "mget *
"}
expect "ftp>" {send "bye"}
END
又复习了下ftp的知识着重又看了下ftp的主动模式和被动模式:
1.FTP的PORT(主动模式)和PASV(被动模式)
(1) PORT(主动模式)
PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据,原理如下图:
2) PASV(被动模式)
PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输
2.两种模式的比较
从上面的运行原来看到,主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。
主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。
被动模式只需要服务器端开放端口给客户端连接就行了