以上脚本在HPUX11.00下试验通过。 本脚本用于在本主机执行后直接远程登录到对方主机,并执行按下的命令或程序中指定的命令(程序中的命令3或命令4)。 本程序参考CU网站的相关自动telnet脚本,并进行了优化,去掉了一切BUG,完美运行。 本程序稍更改后可用于任何UNIX平台,也可改用于SSH,rlogin等方式。
作者:HAWK.Li 时间:2004.7.
#===========autotelnet.sh============== 
以上脚本在HPUX11.00下试验通过。 本脚本用于在本主机执行后直接远程登录到对方主机,并执行按下的命令或程序中指定的命令(程序中的命令3或命令4)。 本程序参考CU网站的相关自动telnet脚本,并进行了优化,去掉了一切BUG,完美运行。 本程序稍更改后可用于任何UNIX平台,也可改用于SSH,rlogin等方式。
作者:HAWK.Li
 
#===========autotelnet.sh==============  #!/bin/bash
tmptty=`tty`                 #取得当前的tty值 tmptty=`basename $tmptty`    #去掉tty的绝对路径 tmpname=`whoami`             #取得当前执行程序的用户名 ip="10.22.33.44"             #目标主机地址 inp1="ABC^M"                 #主机的用户名,注意^M必须在UNIX下重装用以下方法输入才能用!!                              #方法为按住ctrl键按v键,不放ctrl键,再按shift键和m键,完成后全部放开 inp2="ABC^M"                 #主机的密码,注意必须有^M inp3="ls^M"                  #其他进入后的命令,可无或用ls之类的命令代替,注意必须有^M inp4="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      #看得懂吧 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}' | sh ps -ef | grep tail | grep -v grep | grep -v telnetd | grep $tmptty | grep $tmpname | awk '{print " kill -9", $2}' | sh
(本文已被浏览 9721 次)
|
|