zoukankan      html  css  js  c++  java
  • 自动运维之网络设备割接配置按预定步骤操作

       作者:邓聪聪 

      向着自动化运维再次前进一小步!!!

      本着自动化运维的理想,提前解放双手,让系统按照提前部署的方案来执行操作步骤,以此学习到这样的一个小技巧

    [root@bogon ~]# cat telnet.sh 
    #!/bin/bash
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    
    OUTPUT=/tmp/outputfile
    TEMPFIFO=/tmp/fifofile
    FILE=/root/aaa/
    
    touch $OUTPUT
    tail -f $OUTPUT &
    mknod $TEMPFIFO p
    exec 8<>$TEMPFIFO
    
    telnet 192.168.1.252 <&8 > $OUTPUT &
    sleep 1
    echo "user" >> $TEMPFIFO
    sleep 1
    echo "password" >> $TEMPFIFO
    sleep 1
    echo "n" >> $TEMPFIFO
    sleep 1
    echo "sys" >> $TEMPFIFO
    sleep 1
    echo "dis ip routing" >> $TEMPFIFO
    sleep 1
    echo "dis cu int vlan" >> $TEMPFIFO
    sleep 1
    echo "quit" >> $TEMPFIFO
    sleep 1
    echo "quit" >> $TEMPFIFO
    
    
    mv $OUTPUT $FILE
    
    rm -rf $OUTPUT $TEMPFIFO

     python用法:

    #!/usr/bin/env python
    #coding:utf-8
    
    import time
    from telnetlib import Telnet
    now = time.strftime('%Y-%m-%d')
    
    def tel(addr,user,pwd):
            tn = Telnet(addr)
            tn.write(user.encode('ascii')+b'
    ')
            tn.write(pwd.encode('ascii')+b'
    ')
            tn.write(b'sys
    ')
            time.sleep(1)
            tn.write(b'user-interface vty 0 4
    ')
            time.sleep(1)
            tn.write(b'screen-length 0
    ')
            time.sleep(1)
            tn.write(b'dis cu
    ')
            time.sleep(5)
            rsp = tn.expect([],timeout=1)[2]
            return rsp
    
    if __name__ == "__main__":
            fp = open('/tmp/ip.txt','r')
            for ip in fp:
              print("backing up "+ip.strip())
              conf = tel(ip.strip(),'dengcc','dengcc@521')
              print(ip.strip()+' was finished!')
              fw = open("/tmp/"+ip.strip()+".txt"+"_"+now,'wb')
              fw.write(conf)
              fw.close()
            print('done!')
            fp.close()
  • 相关阅读:
    failed to push some refs to 'git@github.com:laniu/liuna.git'报错原因
    ECMAScript和JavaScript的关系
    js面试总结
    第16章 脚本化css
    代理模式
    SQL
    VS
    Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法
    SQL
    C#
  • 原文地址:https://www.cnblogs.com/dengcongcong/p/8663515.html
Copyright © 2011-2022 走看看