论坛首页 综合技术论坛

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

浏览 8848 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-06   最后修改:2012-03-06
自动ftp
使用“<<”使ftp程序接收脚本中的数据作为输入。
具体实现方法如下:

#!/bin/sh

USERNAME=informix			#用户名
PASSWORD=informix			#密码
HOST_IP=10.164.20.218		#要登录的主机IP

ftp -n ${HOST_IP} << 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到主机



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

以上方法在AIX 5.3、AIX 5.1、HP-UX 11.11、Solaris 8上验证通过。
   发表时间:2012-03-06  
说好的不发的呢?
0 请登录后投票
   发表时间:2012-03-06  
该用户名已存在 写道
说好的不发的呢?

刚好整够30分就好。30分好办事。。
0 请登录后投票
   发表时间:2012-03-06  
用expect比这个好
0 请登录后投票
   发表时间:2012-03-22  
biAji 写道
用expect比这个好

确实,expect 可以替代大部分手工远程操作
0 请登录后投票
   发表时间:2012-06-04  
如果telnet端口被屏蔽了怎么实现自动远程,我试了ssh好像不行的。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics