求助:使用SHELL语言编写一个脚本实现ftp功能,将一个文件从本地a目录取到服务器b目录。
3个回答
展开全部
下面这个是我一直在用的,会检查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
#!/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切换到对应的目录即可。
展开全部
随手写了个简易的,希望对你有帮助
#!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
#!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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
脚本主体:
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询