• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

一个用awk实现的多主机自动FTP脚本

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 26次 | 进入软件测试论坛讨论

领测软件测试网
那天在CU里看到有位同学的FTP脚本,做了点修改,希望不至于太土。
可以用awk 来指定不同主机的用户名及密码。附上源码,功能很简单,没有在远端创建目录的动作,也没有将上传动作放到后台。
仅做参考。

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

 yjmsx 回复于:2005-05-26 08:36:15
顶一下

 aerfa 回复于:2005-05-26 09:17:57
study

 defoerol 回复于:2005-05-30 13:48:44
HOSTCONF="usr1:pass1@host1 usr2:pass2@host2 usr3:pass3@host3" 

HOSTIP=`echo $host | awk -F"@" '{printf("%s", $2);}'` 
       
?!

 saintdragon 回复于:2005-06-02 13:54:42
not bad!

 七月天*珂 回复于:2005-06-02 16:10:28
支持一下,顶!!!

 haja 回复于:2005-06-02 17:18:45
还行.

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网