pexpectで処理自動化する

公開日:2017-09-30 更新日:2020-10-02

Cisco Linux Mac Python

t f B! P L

他の機器にsshしてどうこうする処理を自動化したくてpexpectで書いてみた。for文で回したいときなど便利。
linuxではない機器でもいじれるのが良いと思った。

#!/usr/bin/python2.6
#coding: utf-8

import pexpect
import subprocess

def pex(foo, di_l, in_l):
  print(in_l)
  foo.expect(di_l)
  foo.sendline(in_l)

if __name__ == "__main__":
  foo = pexpect.spawn('ssh -l yoshi 192.168.0.1')
  pex(foo, '.*password:', 'password')
  pex(foo, '.*>', 'enable')
  pex(foo, '.*#', 'configure terminal')

  pex(foo, '.*#', 'なにか入れたいコマンド')
  pex(foo, '.*#', 'なにか入れたいコマンド')

  pex(foo, '.*#', 'exit')
  pex(foo, '.*#', 'exit')

  foo.interact()

About me

ゆかき(♀)

アラサー駆け出しインフラエンジニア
ど文系営業からSEへ転身し日々奮闘している人

一児の母

#AP応用情報 #HTML5Lv1 #第2種電気工事士 #DCP(Data Center Practitioner) #LPIC Lv2 #VCP6.5 #CCNP #Oracle Bronze #HTMLv5 #TOEIC860

Media

こちらのイベントで記事紹介いただいていた、嬉しい。

Line stamp

僭越ながら販売中

Green cat & Orange cat

Amazon