shell脚本实现ftp自动化操作的实例分享

发布时间:2019-07-24编辑:脚本学堂
如何用shell脚本实现ftp操作的自动化呢?本文为大家分享几个实例脚本,有兴趣研究shell ftp自动化的朋友,不妨作个参考。

一段shell程序,名为autoftp,用vi做好后,改变权限为777,就可以运行之实现FTP的自动化了。

如下:
 

复制代码 代码示例:
#!/bin/bash
#Filename: autoftp
#by www.jb200.com
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 ”就可以了。

参考示例1:
 

复制代码 代码示例:
( echo "user root abc"
  echo "binn"
  echo "cd /tmpn"
  echo "lcd /tmpn"
  echo "hash  on"
  echo "put test.dat n"
  echo" byen"
 )| ftp -n 144.39.3.$1
echo 'OK!传送结束'

参考示例2:
 

复制代码 代码示例:
ftp -n 144.39.3.$1 <<!
user root abc
cd /tmp
bin
put test.dat
close
bye
!

参考示例3:
 

复制代码 代码示例:
#! /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!264253313315275341312370'
rm t$1
fi

参考示例4:
 

复制代码 代码示例:
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