求助:使用SHELL语言编写一个脚本实现ftp功能,将一个文件从本地a目录取到服务器b目录。

请各位大神把脚本列出,最好能有简单的脚本说明,谢谢!... 请各位大神把脚本列出,最好能有简单的脚本说明,谢谢! 展开
 我来答
百度网友5311d79
推荐于2018-04-04 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3212万
展开全部
下面这个是我一直在用的,会检查ftp错误。

#!/bin/sh
ftp_put()
{
# -n:不使用auto-login;-i:不使用交互式提示输入
ftp -n -i $ipAddr <<EOF
quote USER $username
quote PASS $password
cd b
lcd a
binary
put $myfile
bye
EOF
}

ipAddr=ftp地址
username=你的ftp用户名
password=你的ftp密码
myfile=你要传的文件名(只要名称无需路径)
putErrlog=用于记录ftp错误的日志文件

ftp_put >/dev/null 2>$putErrlog #ftp错误导入日志文件
bytes=`wc -c $putErrlog | awk '{print $1}'` #检查错误日志文件的字节大小
if [ $bytes -ne 0 ]; then #大小不为0说明发生了错误,之后可以手动打开文件检查错误原因
echo "FTP put failed!"
exit 1
else
echo "FTP put successfully!"
fi
exit 0
更多追问追答
追问
你好,还有东西要请教你。“cd b”和“lcd a“是单单指我创建的目录,还是指目录的路径呢?我要传的文件可以放在本地的任何地方吗?请你解答,谢谢!
追答
指切换到对应的目录路径。
cd - 在ftp服务器上切换目录
lcd - 在本地机器上切换目录(lcd中的l表示local)
可以放在本地的任何地方,用lcd切换到对应的目录即可。
dingchaoant
2013-03-28 · TA获得超过1111个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:103万
展开全部
随手写了个简易的,希望对你有帮助

#!usr/bin/sh

##############################
#远端FTPIP
FTPIP=""
#远端FTP用户名
FTPUSER=""
#远端FTP用户密码
FTPPSWD=""
#远端FTP目标路径
DEST_PATH=""
#本地路径
LOCAL_PATH=""
#需FTP的文件名
FILE_NAME=""
##############################
ftp -i -n -v ${FTPIP} << FTP 2>/dev/null
user ${FTPUSER} ${FTPPSWD}
bin
cd ${DEST_PATH}
lcd ${LOCAL_PATH}
put ${FILE_NAME}
bye
FTP
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fmozer
2013-03-28 · TA获得超过185个赞
知道答主
回答量:60
采纳率:0%
帮助的人:60.8万
展开全部
脚本主体:

ftp -n ftp_ip_addr <<EOF
bin
prompt
cd ftp_Server_dir # lcd local_server_dir
get file_from_server # put file_from_local
EOF
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式