用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.如何确认文件是否上传成功
请高手们解答一下,不甚感激! 展开
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.如何确认文件是否上传成功
请高手们解答一下,不甚感激! 展开
2个回答
展开全部
我做过这个,说下我的思路。
将错误输出导出到文件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
返回一些参数信息不知道什么意思。
你是要用另一个脚本来调用这个脚本吗?还是就做在一个脚本里?
将错误输出导出到文件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的输出来判断。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询