在shell脚本中实现自动ftp和telnet

自动ftp
使用“<<”使ftp程序接收脚本中的数据作为输入。
具体实现方法如下:

#!/bin/sh
USERNAME=informix #用户名
PASSWORD=informix #密码
HOST_IP=10.20.5.9 #要登录的主机IP
ftp -n ${HOST_IP} &lt;&lt; FTPEND #ftp到主机
user ${USERNAME} ${PASSWORD} #用户名和密码
ascii #传输模式
cd temp #改变目录
get manager_0.run #取文件
bye #断开连接
FTPEND

使用“<<”可以方便地将脚本下面的内容作为输入,到ftp或者其它程序中。
以上程序中使用“FTPEND”作为ftp程序输入的终止符。

自动telnet
telnet程序不能使用“<<”来接受后面的输入。必须使用别的办法来让telnet程序接受命令。如果此方法可行,还可以使用同样的方法在脚本中登录到别的主机,执行需要的命令。
实践证明,有办法让telnet程序执行脚本中的命令,实现自动telnet。实现方法如下:

#!/bin/sh
USERNAME=informix       #用户名  
PASSWORD=informix       #密码  
HOST_IP=10.164.20.218   #要登录的主机IP  
(  
    sleep 5  
    echo ${USERNAME}        #登录时输入用户名  
    sleep 5  
    echo ${PASSWORD}        #登录时输入密码  
    sleep 5  
    echo "onmode -c"        #执行命令  
    sleep 30  
    echo "exit"     #退出  
    sleep 3  
) | telnet ${HOST_IP}   #telnet到主机  

(sleep 2;echo r2007;sleep 2;echo 123456;while read cmd;do echo $cmd;done)|telnet cu.org|cat
在程序的登录时输入密码到exit之间,使用echo输出要执行的命令,每条命令后面使用sleep做适当延迟,等待命令执行完毕,否则会引起混乱。

以上方法在AIX 5.3、AIX 5.1、HP-UX 11.11、Solaris 8上验证通过。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>