LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1059|回复: 7

FTP上传下载的脚本

[复制链接]
发表于 2007-8-7 17:02:35 | 显示全部楼层 |阅读模式
#!/bin/bash                                 

serverip=                      #指定ftp服务器的ip

serveruser=                            #指定ftp服务器的ftp用户

serverpass=                          #指定ftp服务器的ftp用户密码

localdir=                   #指定client主机本地下载文件存放的目录

remotedir=./*/                                #指定server主机的ftp目录

host=`hostname`                             #指定server主机的主机名

cd $localdir                                #切换到本地下载文件存放的目录

echo "Starting FTP Backup on " $host        #输入开始备份的信息

/usr/bin/ftp -in <<EOF                      #连接ftp服务器

open $serverip

user $serveruser $serverpass

cd $remotedir                               #切换到server主机的ftp目录

bin

ls . mulu.txt                       #列出ftp服务器ftp目录中文件列表并存放到client中的$localdir中

verbose

mget *.* .                                 #下载ftp服务器ftp目录中的所有文件

stat                                       #打印ftp状态

bye                                        #退出ftp服务器

EOF

echo "get the directory list ok,and get all the files once ok"


我用这个脚本下载
但下载下来的是一个网页
还要用w3m打开才能得到我要下载的东西
请教:我这个脚本到底哪里错了?
希望高手能扶助我一把
我实在找不出原因
发表于 2007-8-7 18:32:01 | 显示全部楼层
FTP 服务器上就是一个网页吧?
回复 支持 反对

使用道具 举报

发表于 2007-8-8 09:13:00 | 显示全部楼层
不是的,mget 这个命令在download时,仅download此目录下的文档,而不包括目录!
另外弱弱的问:
usr/bin/ftp -in <<EOF
可否告诉一下,<<EOF的意思是什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-8 09:27:06 | 显示全部楼层
Post by jellychen
不是的,mget 这个命令在download时,仅download此目录下的文档,而不包括目录!
另外弱弱的问:
usr/bin/ftp -in <<EOF
可否告诉一下,<<EOF的意思是什么?

表示当目录usr/bin/ftp 不存在时
就重定向到标准错误输出
回复 支持 反对

使用道具 举报

发表于 2007-8-8 11:34:32 | 显示全部楼层
非常感谢!
不过,我还是不明白?
回复 支持 反对

使用道具 举报

发表于 2007-8-8 21:25:42 | 显示全部楼层
/usr/bin/ftp -in <<EOF #连接ftp服务器

open $serverip

user $serveruser $serverpass

cd $remotedir #切换到server主机的ftp目录

bin

ls . mulu.txt #列出ftp服务器ftp目录中文件列表并存放到client中的$localdir中

verbose

mget *.* . #下载ftp服务器ftp目录中的所有文件

stat #打印ftp状态

bye #退出ftp服务器

EOF
前后两个EOF,
表示FTP依次执行这两个EOF中的指令.
不是重定向到标准错误输出,输出是>
回复 支持 反对

使用道具 举报

发表于 2007-8-8 21:26:28 | 显示全部楼层
/usr/bin/ftp -in <<EOF #连接ftp服务器

open $serverip

user $serveruser $serverpass

cd $remotedir #切换到server主机的ftp目录

bin

ls . mulu.txt #列出ftp服务器ftp目录中文件列表并存放到client中的$localdir中

verbose

mget *.* . #下载ftp服务器ftp目录中的所有文件

stat #打印ftp状态

bye #退出ftp服务器

EOF
前后两个EOF,
表示FTP依次执行这两个EOF中的指令.
不是重定向到标准错误输出,输出是>
回复 支持 反对

使用道具 举报

发表于 2007-8-9 09:23:20 | 显示全部楼层
非常感谢!
我昨天在做测试时,得出一个这样的结论比如:
cat aaa << EOF
> ASDFAS
> ASDFAS
> ASDFASDF
> .
> A
> EOF
不输入EOF这三个大写的英字母,系统一直会让你输入.
经你这么一解,学习不少东东!
感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表