·ChinaUnix首页 ·论坛 ·博客 
Linux首页 | Linux新闻 | Linux文档 | Linux论坛 | Linux下载 | Linux博客 | Linux搜索
新手入门 | 安装启动 | 管理员指南 | 开发手册 | 桌面应用 | 程序开发 | 数据库 | 网络技术| CentOS | Fedora | MySQL | Apache | Ubuntu | Gentoo| OSCON08
  Linux时代 >> 技术文档 >> 新手入门
 
编程入门 ——很小的那扇门
来源: ChinaUnix博客  日期: 2008.04.10 13:53 (共有条评论) 我要评论
 

                                                                                    工作中会碰到要定期对某个网络设备进行配置的保存,现在利用linux让机器去做这项任务对后人来说是再简单不过了。
现有3法:
sh 、expc、 pthon
先来看使用 sh
比如你要对huaweiS2008交换机进行登录
编译vi telnet.sh
( sleep 1;echo "abc";
  sleep 1;echo "s";
  sleep 1;echo "100";
  sleep 1;echo "dis cu";
  sleep 1;echo "  ";                //" 中是空格这一点在查看时特别有用,因为配置文件太多。   
  sleep 1;echo "  ";                //"先自己看下再决定粘的sleep 1;echo "  ";的行数多少"
  sleep 1;echo "  ";                //
  sleep 1;echo "q") | telnet 172.16.15.20    //要登陆网络设备的ip地址
现在说一下sleep 1;echo "  ";
为了能将设备的配置全部显示出来,可以象上面的一样多粘几行,
当然也可以sleep 1;echo "                        ";
中间空的大些。
最后chmod +x telnet.sh
./telnet.sh > telnet.txt
就哦可了!     ^_^
-----------------------------------------------------------------------------------
Expect来实现,文件名:autotelnet.exp,代码如下:
#!/usr/bin/expect
  set timeout 100
  set TERM xterm
  set SERVER "10.32.17.10"
  set USER "root"
  set PASSWD "123456"
  spawn telnet
  expect "telnet> "
  send "open $SERVERr"
  expect "Username:"
  send "$USERr"
  expect "Password:"
  send "$PASSWDr"
  expect "longjiang-zero>"
  send "enr"
  expect "Password:"
  send "$PASSWDr"
  expect "longjiang-zero#"
  send "conf tr"
  expect "longjiang-zero(config)#"
  send "int fa0/1r"
  expect "longjiang-zero(config-if)#"
  send "switchport mode multir"
  expect "longjiang-zero(config-if)#"
  send "endr"
  expect "longjiang-zero#"
  send "exitr"
  interact
Python来实现,文件名:autotelnet.py,代码如下:
  #!/usr/bin/python
  import telnetlib
  host = ''10.32.17.10''
  user = ''root''
  password = ''123456''
  commands = [''en'',password,''conf t'',''int fa0/1'',''switchport mode multi'',''end'']
  tn = telnetlib.Telnet(host)
  tn.read_until("Username:")
  tn.write(user + "n")
  tn.read_until("Password:")
  tn.write(password + "n")
  for command in commands:
  tn.write(command+''n'')
  tn.write("exitn")
  print tn.read_all()
  print ''Finish!''
原始资料大家可以参看
http://linux.chinaitlab.com/administer/730677.html
               
               
               
               
               
               
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/47189/showart_525290.html
  发表评论 查看评论(共有条评论) 我要提问
 
 


最新资讯更多>> 
· AMD的OverDrive和CrossFire技术..
· Perl:企业用户爱并痛恨着
· OpenOffice.org 3.0发布第二个..
· 开源软件的好消息【微软打击盗..
· Fedora 10 的主要功能特性已经..
· Sun借助OpenSolaris存储计划重..
· 袁萌专栏:自由软件的伟大胜利..
· Mandriva Linux 2009 Beta2发布
· Ubuntu + Dell = 终极便携式
· 开发者邀业内安全专家共测Andr..
论坛热点更多>> 
· 521VS邋遢猫谁能赢得好儿MM得..
· 如何高效率封杀QQ游戏?(目前..
· 讨论:除了0以外的UID允许重..
· 同事约去吃火锅
· 一会带骨头帮主去修本子
· 准备 购台 电视
· 俺今天找到专家积分喽
· 怎么才能生活的有动力啊
· Linux选择性安装,然后图形登..
· 如果你觉得憋屈了
文档更新更多>> 
· traceroute命令和tcpdump命令
· Linux磁盘管理指令集(二)
· Linux磁盘管理指令集(一)
· 给笔记本电脑装Linux系统
· set uid ,set gid,sticky bit的三..
· 文件结构体struct file(Linux 2...
· rpm包的安装、删除、效验、查询
· git-svn 简介
· 基础_tar.gz,tar.bz2
· 使用yum 代替up2date 自动更新升..
 
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 友情链接 | 免费注册

Copyright © 2001-2008 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们