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()
  • 相关阅读:
    时间那点儿事儿 -- 时间戳,时区,冬令时,夏令时
    iOS: 并发编程的几个知识点
    iOS: 聊聊 Designated Initializer(指定初始化函数)
    iOS 滑动性能优化
    iPad 多任务 Spilt View & Size Class
    iOS: 如何正确的绘制1像素的线
    iOS: Crash文件解析(一)
    iOS:使用MVC模式帮ViewController瘦身
    iOS:项目中疑难Crash问题集锦
    最近面试人的一点儿感受
  • 原文地址:https://www.cnblogs.com/dengcongcong/p/8663515.html
Copyright © 2011-2022 走看看