python paramiko invoke_shell_Paramiko如何检测使用invoke_shell执行的命令是否完成 - python...

我正在尝试使用Paramiko执行备份。进行备份时,我让脚本休眠240秒钟,希望脚本完成,但是有时这可能需要更长的时间。无论如何,我可以使用循环每20秒检查一次,看看是否存在诸如“ backup complete”之类的关键字是输出变量。

import datetime, time

from time import sleep

from Tkinter import *

import paramiko

from paramiko_expect import SSHClientInteraction

def backup():

prompt = 'root@servername user'

try:

client = paramiko.SSHClient()

client.load_system_host_keys()

client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client.connect(hostname=server, username=user, password=pass)

interact = SSHClientInteraction(client, timeout=10, display=True)

except paramiko.AuthenticationException:

print("Authentication failed, please verify your credentials: %s")

except paramiko.SSHException as sshException:

print("Unable to establish SSH connection: %s" % sshException)

except paramiko.BadHostKeyException as badHostKeyException:

print("Unable to verify server's host key: %s" % badHostKeyException)

except Exception as e:

print(e.args)

interact.send('su')

interact.expect("Password:")

interact.send("supassword")

interact.expect(prompt)

interact.send("who")

interact.expect(prompt)

cmd_output_who = interact.current_output_clean

print cmd_output_who

参考方案

SSHClient.invoke_shell用于实现交互式终端会话(例如,如果您正在实现自己的SSH终端客户端),而不是用于自动执行命令。终端是带有输入和输出的黑匣子。它没有任何API可以执行命令并等待其完成。

使用SSHClient.exec_command执行命令,并使用Channel.recv_exit_status或Channel.exit_status_ready等待命令完成。

请参见Wait until task is completed on Remote Machine through Python。

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…Python:集群作业管理 - python

我在具有两个阶段的计算群集(Slurm)上运行python脚本,它们是顺序的。我编写了两个python脚本,一个用于阶段1,另一个用于阶段2。每天早上,我检查所有第1阶段的工作是否都以视觉方式完成。只有这样,我才开始第二阶段。通过在单个python脚本中组合所有阶段和作业管理,是否有一种更优雅/自动化的方法?我如何知道工作是否完成?工作流程类似于以下内容:w…Python:在不更改段落顺序的情况下在文件的每个段落中反向单词? - python

我想通过反转text_in.txt文件中的单词来生成text_out.txt文件,如下所示:text_in.txt具有两段,如下所示:Hello world, I am Here. I am eighteen years old. text_out.txt应该是这样的:Here. am I world, Hello old. years eighteen a…用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值