一个用awk实现的多主机自动FTP脚本
时间:2007-08-24 来源:brain2007
#!/bin/sh
# 同时向多个FTP服务器上传文件,文件上传到服务器上该用户的FTP根目录下
#
# 对于所有服务器,目录结构均相同
# 对于每一个服务器,用户名、密码可以不同,可以通过如下形式预定义
# <username>;:<passwd>;@<hostip>;
# 对于username、passwd、hostip,不能包含冒号(:)、花a(@)
# FTP服务器及其上的用户、密码
HOSTCONF="usr1:pass1@host1 usr2:pass2@host2 usr3:pass3@host3"
putit()
{
ftp -i -n -v $HOSTIP <<-PUTIT
user $USERNAME $PASSWD
bin
put $LOCFILE $REMFILE
PUTIT
}
# 指定本地文件名
echo "请指定本地文件名:"
read LOCFILE
# 指定远端文件名
echo "请指定远端文件名:"
read REMFILE
for host in $HOSTCONF
do
# 使用awk分解出主机IP、用户名、密码
HOSTIP=`echo $host | awk -F"@" '{printf("%s", $2);}'`
USRPASS=`echo $host | awk -F"@" '{printf("%s", $1);}'`
USERNAME=`echo $USRPASS | awk -F":" '{printf("%s", $1);}'`
PASSWD=`echo $USRPASS | awk -F":" '{printf("%s", $2);}'`
echo "上传到主机: [ $HOSTIP ] 用户名: [ $USERNAME ] ......"
# 上传文件
putit
echo "上传到主机: [ $HOSTIP ] 用户名: [ $USERNAME ] 结束!"
done
相关阅读 更多 +