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

请各位大神把脚本列出,最好能有简单的脚本说明,谢谢!

下面这个是我一直在用的,会检查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切换到对应的目录即可。

追问

你好,可以加你的qq号码吗,还有一些问题向你请教,谢谢!

追答

公司禁止用QQ,请加百度hi交流,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-28
随手写了个简易的,希望对你有帮助

#!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
第2个回答  2013-03-28
脚本主体:

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

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网