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

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

用SHELL实现FTP自动化

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

领测软件测试网
假若在UNIX系统中,你要向网络中的多个主机发送文件,逐个用FTP手工发送很枯燥, 
    如何实现自动发送呢?下面给出一段SHELL程序,名为autoftp,用vi做好后,改变
    权限为777,就可以运行之实现FTP的自动化了。

    echo open 144.39.3.$1 > t$1
    echo user root abc >> t$1
    echo hash >> t$1
    echo send /tmp/test.dat /tmp/test.dat >> t$1
    chmod 777 t$1
    cat t$1 | ftp -n
    echo 'OK!传送结束'

    例子中假设接收文件的一组主机地址为144.39.3.XXX,  其超级用户口令为
   “abc”,要传送的文件名为/tmp/test.dat。例如要向144.39.3.9主机传送,则
   “autoftp 9 ”就可以了。


 

 bzzyg 回复于:2003-02-20 11:44:00
( echo "user root abc"
  echo "bin\n"
  echo "cd /tmp\n"
  echo "lcd /tmp\n"
  echo "hash  on"
  echo "put test.dat \n"
  echo" bye\n"
 )| ftp -n 144.39.3.$1
echo 'OK!传送结束'

 rainyday 回复于:2003-02-20 13:49:02
ftp -n 144.39.3.$1 <<!
user root abc
cd /tmp
bin
put test.dat
close
bye
!

 luckytown 回复于:2003-02-20 17:05:15
#! /bin/ksh
if [ $# = 0 ]
then
        echo "autoftp [host|ip] [usr] [passwd] [command] [sourfile] [destfile]"
else
        echo open $1 > t$1
        echo user $2 $3 >> t$1
        echo hash >> t$1
        echo bin >> t$1
        if [ $# = 5 ]
        then
                echo $4 $5 $5 >> t$1
                echo chmod 750 $5 >> t$1
        else
                echo $4 $5 $6 >> t$1
                echo chmod 750 $6 >> t$1
        fi
        chmod 777 t$1
        cat t$1 | ftp -n
        echo 'OK!\264\253\313\315\275\341\312\370'
        rm t$1
fi

 avenlau 回复于:2003-02-21 08:49:48
假如ftp所使用的用户没有口令你们的自动传输还有用吗?你们可以试一试。

 nhrms 回复于:2003-03-07 13:05:06
请教?利用FTP怎样在UNIX下向WIN98传送文件?? :D

 shumingdao 回复于:2003-03-07 15:23:29
真是好东西啊
呵呵
马上就用啊
谢谢各位大虾

 dajing 回复于:2003-05-14 22:35:12
若用户无密码该怎么办?

 death 回复于:2003-05-15 10:16:45
没有口令也可以! 以SDCCF老大的例子为例
只要把abc 换成 ^M (按ctrl不放在先后按下v,m两键) 就行了

 tzxys 回复于:2003-05-27 17:48:21
是啊,98,nt,和os/2下如何
自动实现象unix的ftp功能啊??
????
*—……—¥……%¥……?

 wwwjy2000 回复于:2003-06-03 17:27:19
无密码时用`print "\n"`代替abc (雨天的例子)。另在UNIX下FTP WINDOWS跟FTP UNIX 一样,WINDOWS中要建立用 :wink:

 wsluo 回复于:2003-06-10 12:08:12
给大家解释一下特殊的地方可以吗 
>、>>、<、<<、t$1、t$1 | ftp -n 等等 

对不起我是菜鸟,好多用这个地方的都看不懂

 qfwqfw 回复于:2003-07-16 10:32:08
>   输出重定向,先清空文件
    >> 输出重定向,添加到文件尾部
    <   输入重定向
    <<  两个!之间的内容做为文件传入
    t$1  以t开头命令的第二个参数为其余部分的一个字符串
   ftp -n 禁用.netrc文件的功能等等

 wsluo 回复于:2003-07-23 09:54:07
谢了

 chinagfu 回复于:2004-04-28 15:38:30
if [ $# != 1 ];then
   echo "错误,请输入升级包名!!!"
   exit 0
fi
echo "正在向各网点发送升级程序。。。"
cd /ly
for i in `cat w_d`
    do
echo "向$i ......发送 \c"
ftp -vin       <<!
open $i
user root root
lcd /home/ebip/tmp
cd /home/cebcard/tmp
put $1
bye
!
echo "OK!!!发送成功"
done

延伸阅读

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


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

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网