用shell 脚本登陆远程ftp 1.如何确认ftp连接成功2.如何确认文件是否上传成功3.如何返回一些参数信息

#!/bin/shFTP_HOST=$5FTP_DIR=$6FTP_FILENAME=$7DOWNLOAD_DIR=$8FTP_USER=$9FTP_PASSWORD=$... #!/bin/sh
FTP_HOST=$5
FTP_DIR=$6
FTP_FILENAME=$7
DOWNLOAD_DIR=$8
FTP_USER=$9
FTP_PASSWORD=$10
FTP_HOST_PORT=$11
FTP_TRANS_MODE=$12

cd $DOWNLOAD_DIR
ftp -i -n $FTP_HOST $FTP_HOST_PORT <<FTPEOF
user $FTP_USER $FTP_PASSWORD
cd $FTP_DIR
$TRANS_MODE
put $FTP_FILENAME
quit
FTPEOF
1.如何在连接之前先测试是否能连接成功,成功继续,不成功返回给调用程序一些信息
2.如何确认文件是否上传成功
请高手们解答一下,不甚感激!
展开
 我来答
小米飞猫
2012-12-04 · 专注于IT监控领域技术
小米飞猫
采纳数:1653 获赞数:4811

向TA提问 私信TA
展开全部
在上传的机器写个验证脚本。用cron定时执行。
百度网友5311d79
2012-12-04 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3221万
展开全部
我做过这个,说下我的思路。

将错误输出导出到文件err.log,方便后续检查。ftp连接是否成功和文件上传是否成功都可以通过这个来检查。
(ftp -i -n $FTP_HOST $FTP_HOST_PORT <<FTPEOF
user $FTP_USER $FTP_PASSWORD
cd $FTP_DIR
$TRANS_MODE
put $FTP_FILENAME
quit
FTPEOF
) 2>>err.log
if [ -s err.log ]; then #文件存在且不为空
echo "FTP连接和文件上传都成功"
else
#你可以测试一下失败的情况看下错误信息
#然后用grep通过在err.log文件中查找关键字方法来确认是FTP连接失败还是文件上传失败。
fi

返回一些参数信息不知道什么意思。
你是要用另一个脚本来调用这个脚本吗?还是就做在一个脚本里?
追问
我在退出(quit)之前用echo '******测试***' 这样子的来输出测试信息,为什么ftp会不识别,提示
?Invalid command

要是想在put file之后直接输出一些提示信息,应该怎么样做?谢谢
追答
<<FTPEOF 与 FTPEOF 之间的内容必须是FTP支持的命令(这是shell的Here documents的用法),这中间就等于是进入了FTP命令环境,echo这种shell命令是不能放在里面的。
在此之间你无法主动输出一些提示信息,只能是通过捕获FTP的输出来判断。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式