shell脚本自动telnet 与ftp

    用telnet自动登录并发送一条消息

    

localhost.localdomain@/home/term/mengfh/shell>>cat telnet.sh 
#!/bin/bash
str='<?XML version="1.0"?><GRROOT><PAY><PAYMSGTYPE>0800000001</PAYMSGTYPE><PAYINSTINO>10117310</PAYINSTINO><PAYTERMNO>70320053</PAYTERMNO><PAYMERCHNO>812310254110944</PAYMERCHNO></PAY></GRROOT>';
(
sleep 5;
echo $str ;
sleep 5;
echo "exit"
sleep 3
)| telnet 192.168.22.51 8028



    参考网页:http://www.iteye.com/topic/1121243

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

Java代码   收藏代码
  1. #!/bin/sh  
  2.   
  3. USERNAME=informix           #用户名  
  4. PASSWORD=informix           #密码  
  5. HOST_IP=10.164.20.218       #要登录的主机IP  
  6.   
  7. ftp -n ${HOST_IP} << FTPEND       #ftp到主机  
  8. user ${USERNAME} ${PASSWORD}    #用户名和密码  
  9. ascii                   #传输模式  
  10. cd temp             #改变目录  
  11. get manager_0.run           #取文件  
  12. bye                 #断开连接  
  13. FTPEND  





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

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

Java代码   收藏代码
  1. #!/bin/sh  
  2.   
  3. USERNAME=informix       #用户名  
  4. PASSWORD=informix       #密码  
  5. HOST_IP=10.164.20.218   #要登录的主机IP  
  6.   
  7. (  
  8.     sleep 5  
  9.     echo ${USERNAME}        #登录时输入用户名  
  10.     sleep 5  
  11.     echo ${PASSWORD}        #登录时输入密码  
  12.     sleep 5  
  13.     echo "onmode -c"        #执行命令  
  14.     sleep 30  
  15.     echo "exit"     #退出  
  16.     sleep 3  
  17. ) | telnet ${HOST_IP}   #telnet到主机  


在程序的登录时输入密码到exit之间,使用echo输出要执行的命令,每条命令后面使用sleep做适当延迟,等待命令执行完毕,否则会引起混乱。 

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

你可能感兴趣的:(shell脚本自动telnet 与ftp)