如何自动化的调用脚本:
方案1: 写一个python,然后使用os.system()函数阻塞式的调用CMD来登陆设备并下发指定参数。可以较为简易的通过函数入参及进行变量的传入。但其问题在于,无法进行较为复杂的变量判断以及逻辑。
os.system("/Users/mend.sh "+ device_Ip + " " + server1 + " " + server2 + " "+ key1+ " "+ key2)
https://blog.youkuaiyun.com/guotch/article/details/79249282
本文介绍基于PEXPECT的相关解决方案(完全的嵌入到PYTHON代码中)
推荐这篇教程写的相当不错:https://www.jianshu.com/p/cfd163200d12
以下为总结的实际应用中可能的问题。
关键点1:如果想使用process.logfile_read = sys.stdout提供基于CMD界面的回显,必须使用python2而不是python3.
关键点2:可以使用process作为句柄,在需要在多个SSH进程间切换时,依据句柄进行调用。
关键点3:searchwindowsize=100 参数可能存在一定的问题,需要谨慎使用。
关键点4:当需要对一个输出进行多次校验时,可以通过before函数读取后使用python代码进行校验,下列代码的含义就是输入CMD2后对回显执行回显检查直至检查到”STRING END“为止,并将这个字符串之前的所有回显返回给output变量。