多学点东西,再写写自己的收获,和大家共分享。 这样对linux都有贡献。。。。

自动telnet之完美中文支持

上一篇 / 下一篇  2007-09-18 21:28:07 / 个人分类:linux 工具使用

在好几个月前,我在日志FC6下工作 中提到了自动telnet 方面的作法。当初我建议的是用expect .
在我用的这近半年中,有一个问题,就是expect 对中文的支持实在是不行。
在手工telnet 工作时,用vi打开 一个含有中文的文件 ,最多是乱码,但是一旦用expect自动登入后,你绝对不用 碰中文,一旦碰了,一定是 telnet自动退出。又得重新登入。很是不快。

直到最近两天,找到了python-pexpect组件,这个问题才得到解决。现在给出ubuntu上的安装方式:
     sudo apt-get install python-pexpect


给出telnet.py程序的下载地址:telnet.py.rar
以下是程序代码:
-----------------------------------------
#!/usr/bin/python
# Filename : helloworld.py
import pexpect
import sys
def auto_telnet (ip,username,password,isspawn=1):
    global ter
    if isspawn ==1:
        ter= pexpect.spawn('/usr/bin/telnet -8 -e^E '+ip)
    else:
        ter.sendline('telnet -8 -e^E '+ip)
    ter.expect ('ogin:')
    ter.sendline ( username )
    ter.expect ('assword:')
    ter.sendline ( password )
    ter.sendline ('')

count=(len(sys.argv) -1 ) / 3
if count < 1:
    print "error:no args "
    exit()

for i in range(1, count+1) :
    if i==1 :
        auto_telnet(sys.argv[(i-1)*3+1],sys.argv[(i-1)*3+2],sys.argv[(i-1)*3+3],1)
    else :
        auto_telnet(sys.argv[(i-1)*3+1],sys.argv[(i-1)*3+2],sys.argv[(i-1)*3+3],0)
ter.interact()

-----------------------------------------
请将这个程序保存为telnet.py
加可执行权限:
chmod a+x telnet.py
登入命令:
    ./telnet.py  ip  username password
如:./telnet.py 10.222.1.2 ybtff 123456

如果你要telnet 到一台机器(ip1)的话,还要从这台机器telnet到别一台机器(IP2) 的话:这么干:
 ./telnet.py ip1  username1 password1 ip2 username2 password2
如:第一台的ip : 10.222.1.2  username: ffff  password : 111111
       第二台的IP: 10.222.1.8   username : yyyy  password: 222222
就有:
    ./telnet.py 10.222.1.2 ffff 111111 10.222.1.8 yyyy 2222222

当然还有:  ./telnet.py ip1  username1 password1 ip2 username2 password2  ip3 username3 password3

一般来说,你会经常telnet 到某些地方 ,你就可以简单写一个脚本:
里边的内容就是:
   ./telnet.py  ip  username password
这样运行这个脚本,就可以到预定的地方了。。

写这文章感触很深: 有些工具可能你觉得不好用,但一定会有更好用的,只是没有找到。
还有就是一个人在摸索中前进,其实真的很辛苦,当然也有成就感。。
大家都把自己的一些工具使用心得写写,可能会让许多人少走许多弯路。

 当然 ,pexpect 能做很多自动化的工作,自动telnet 只是一个案例,你还可以用它做很多自动化的工作。







TAG:

引用 删除 mic   /   2007-09-19 10:56:16
linux 下很多工具,粗看觉得很简单,
实际上还是花了不少心思在里面
就像当初我用vi的时候,觉得它很差,
现在才发现,跟微软的编辑器相比,vi简直太先进了
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-05  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 19621
  • 日志数: 44
  • 图片数: 3
  • 文件数: 4
  • 书签数: 16777215
  • 建立时间: 2007-01-30
  • 更新时间: 2008-10-30

RSS订阅

Open Toolbar