假若在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/