Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104673190
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-18 22:32:11

作者:bill_zn   
可以用awk 来指定不同主机的用户名及密码。附上源码,功能很简单,没有在远端创建目录的动作,也没有将上传动作放到后台。
仅做参考。

#!/bin/sh
# 同时向多个FTP服务器上传文件,文件上传到服务器上该用户的FTP根目录下
#
# 对于所有服务器,目录结构均相同
# 对于每一个服务器,用户名、密码可以不同,可以通过如下形式预定义
#      :@
# 对于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
阅读(696) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~