shell脚本上传到ftp以测试连接
时间:2020-03-05 15:31:46 来源:igfitidea点击:
此脚本的主要目标是监控FTP服务器。
此脚本是如何在BASH Shell中使用FTP命令的示例。
系统管理员可以使用此脚本检查FTP服务器是否存在并上传任何数据/备份。
每次脚本创建一个新文件时,每次具有不同的MD5和,脚本将其上载到FTP服务器后,请检查两个文件的MD5SUM。
如果md5sum相同,这意味着文件成功上传到FTP服务器。
shell脚本测试FTP上传
以下shell脚本测试FTP上传:
#!/bin/bash
function usage {
echo "Usage: ./ftp.sh --ftpserver ftp.example.com 20
Uploading file ... DONE
Checking MD5 sum ... MD5 sum OK
"
echo "--ftpserver "
echo "--help - this help"
exit 1
}
if [ $# -eq 0 ]; then
usage
fi
while [ $# -gt 0 ]
do
case "" in
--ftpserver) HOST=;TIMEOUT=;shift;;
--help) usage;;
*) break;;
esac
shift
done
if [ x$HOST = "x" ]; then
usage
fi
### Global Variables
ORIG_DIR="/tmp/"
LOG_FILE="/tmp/ftp.log"
EMAIL="[email protected]"
#next function will make all checks.
function check {
#few more variables
####VARIABLES
MAXTIMEOUT=300
ORIG_FILE="check.file"
FTPTIMEOUT='20'
USERNAME="user"
FOLDER="test"
PASSWORD="password"
DATAFOLDER="somefolder"
cd $ORIG_DIR
echo -n "Creating file … "
dd if=/dev/urandom of=$ORIG_DIR/$ORIG_FILE bs=104857 count=150 > /dev/null 2>&1
echo "Done"
echo -n "Uploading file … "
ftp -inv < $LOG_FILE
open $HOST
user $USERNAME $PASSWORD
cd $FOLDER/$DATAFOLDER
binary
passive
put $ORIG_FILE
quote size $ORIG_FILE
close
bye
EOF
echo " DONE"
echo -n "Checking MD5 sum ... "
ftp -inv <> $LOG_FILE
open $HOST
user $USERNAME $PASSWORD
cd $FOLDER/$DATAFOLDER
passive
binary
quote size $ORIG_FILE
dir
quote XMD5 $ORIG_FILE
close
bye
EOF
MD5=`tail -2 $LOG_FILE | head -1 | awk '{print }' | tr [:upper:] [:lower:]`
ftp -in </dev/null
open $HOST
user $USERNAME $PASSWORD
cd $FOLDER/$DATAFOLDER
delete $ORIG_FILE
close
bye
EOF
MD5_ORIG=`/usr/bin/md5sum $ORIG_FILE | awk '{print }'`
if [ x"${MD5}" != x"${MD5_ORIG}" ]; then
RESULT=" File corrupted."
else
RESULT=" MD5 sum OK "
fi
echo $RESULT
rm $ORIG_FILE
}
check

