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

请各位大神把脚本列出,最好能有简单的脚本说明,谢谢!
2025-05-21 19:47:54
推荐回答(3个)
回答1:

下面这个是我一直在用的,会检查ftp错误。

#!/bin/sh
ftp_put()
{
# -n:不使用auto-login;-i:不使用交互式提示输入
ftp -n -i $ipAddr < 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

回答2:

随手写了个简易的,希望对你有帮助

#!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

回答3:

脚本主体:

ftp -n ftp_ip_addr <bin
prompt
cd ftp_Server_dir # lcd local_server_dir
get file_from_server # put file_from_local
EOF