linux下自动telnet到远程主机上运行的脚本概要1.docxVIP

linux下自动telnet到远程主机上运行的脚本概要1.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux下自动telnet到远程主机上运行的脚本概要1

linux下自动telnet到远程主机上运行的脚本Kvlode发布于 2008-8-06 |?495次阅读 ??字号:?大?中?小??(网友评论?0?条)?我要评论用例:自动测试系统,自动编译完成后,需要能够自动在终端上运行,终端仅支持串口和telnet控制,其中telnet是比较理想的选择,只需要telnet过去后,自动完成交互的过程即可。方案:后台运行telnet,将标准输入重定向到管道,然后往管道中发交互命令。(管道的相关内容抽空看一下,必要的时候补篇文章)补充:虽然到的本例直接用shell脚本完成,但感觉主要内容在于telnet后台运行及管道,如有必要使用其它脚本比如最近在玩的lua等也可以实现,当然了,需要用到一些exec。脚本:#===========autotelnet.sh==============?#!/bin/bashtmptty=`tty` #取得当前的tty值tmptty=`basename $tmptty` #去掉tty的绝对路径tmpname=`whoami` #取得当前执行程序的用户名ip=4 #目标主机地址inp1=ABC^M #主机的用户名,注意^M必须在UNIX下用以下方法输入才能用!!(VI下测试OK)#方法为按住ctrl键按v键,不放ctrl键,再按shift键和m键,完成后全部放开inp2=ABC^M #主机的密码,注意必须有^Minp3=ls^M #其他进入后的命令,可无或用ls之类的命令代替,注意必须有^Minp4=pwd^M #命令4,同上#--------------------------inputfile=in #导入文件管道用的,不要改,这个值没有任何关系outputfile=out.log #最终导出的文件rm -fr $inputfile?rm -fr $outputfile?mknod $inputfile p?touch $outputfile?#file description 7 for out and 8 for in 使用7作为输入管道,8作为输入exec 7$outputfile?exec 8$inputfile?#这句是关键,注意对于标准输入标准输出的重定向,和后台运行的,以方便在后面telnet $ip 8 7 ?sleep 2; echo $inp1 $inputfile #等2秒,然后把inp1,也就是用户名+回车换行输入到输入管道sleep 2; echo $inp2 $inputfile?sleep 2; echo $inp3 $inputfile #如果没有其他命令,这行和下一行可以去掉sleep 2; echo $inp4 $inputfile?tail -f $outputfile #强制在屏幕上显示任何输入输出#正常情况下已经进入目标主机了,可以输入任何命令,所有的一切输入输出都会被记录?#以下这一段根据实际需要进行修改,如本用例中可进行等待某些事件后退出,不需要进行读入while true?do?read str #读入一行if [[ $str = quit || $str = exit ]]?#在远程执行这一行then echo $str $inputfile exit?else echo $str $inputfile?fi?done?#退出时自动杀掉相关进程ps -ef | grep telnet | grep -v grep | grep -v telnetd | grep $tmptty | grep $tmpname | awk {print kill -9, $2} | shps -ef | grep tail | grep -v grep | grep -v telnetd | grep $tmptty | grep $tmpname | awk {print kill -9, $2} | sh#=====================脚本结束===================linux shell I/O重定向2007-06-09 11:51实验test.sh#!/bin/bashif [ -t 0 ]; thenecho okecho ${11}cat temp.txtelse?echo badcat temp.txtfi当用exec 3 filename?# 将fd(文件描述符)3的输入来自文件./test.sh 3?#将fd3重定向到test.sh的标准输入。这样test.sh生成的进程的标准输入来自fd3,而fd3的输入来自文件filename这样子 test.sh 中的if -t 0就是不再指向一个终端了。0: 标准输入1: 标准输出2: 标准错误3-1023(ulimit -

文档评论(0)

676200 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档