我在下一个命令写入命令之前努力编写命令的完整结果(至少这是我怀疑发生的事情)。
我编写了一个Python脚本,使用Paramiko将SSH连接到Cisco交换机,并从种子列表中执行命令列表,名为" cmdlist.txt"。
开始脚本ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
chan = ssh.invoke_shell()
TERM_WIDTH = 'terminal width 250\n'
TERM_LENGTH = 'terminal length 0\n'
chan.send(TERM_WIDTH)
time.sleep(1)
chan.send(TERM_LENGTH)
time.sleep(1)
with open('cmdlist.txt') as CMDLIST:
for CMD in CMDLIST:
COMMAND = '{}\n'.format(CMD)
chan.send(COMMAND)
time.sleep(30)
COMMAND_Ret = chan.recv(9999)
COMMAND_Ret = COMMAND_Ret.decode('utf8')
COMMAND_Ret = StripLastLine(COMMAND_Ret)
if set ('^').intersection(COMMAND_Ret):
COMMAND = COMMAND.rstrip()
FAILURE = '\nCOMMAND {} FAILED.\n\n\n'.format(COMMAND)
RESULTS.write(FAILURE)
else:
COMMAND = COMMAND.rstrip()
RESULTS.write(COMMAND_Ret)
停止脚本
我玩过" time.sleep()"延迟,但它不会阻止长命令写入前一个命令。
是否有一种方法让脚本暂停一段命令完成所需的时间,然后在脚本完成所有内容写入后继续?
感谢帮助!