Python脚本-连接到SSH并运行命令

Python脚本-连接到SSH并运行命令,python,automation,ssh,telnet,Python,Automation,Ssh,Telnet,我已经知道Python有ssh模块,这不是我想要的。 我想要的是一个python脚本,用于执行以下操作: >连接到[input by user]SSH主机 >使用[用户提供的]凭据进行连接 >在SSH主机上运行命令[telnet to[host-input by user] >选择telnet会话中的菜单项 提前感谢, 致以最诚挚的问候,如果您真的在寻找一个可以让您自动进行CLI交互的模块,请参阅使用它的完整示例。使用或。现在流行的解决方案是有许多库可以做到这一点 子流程 期望 帕拉米科(主要使

我已经知道Python有ssh模块,这不是我想要的。 我想要的是一个python脚本,用于执行以下操作:

  • >连接到[input by user]SSH主机
  • >使用[用户提供的]凭据进行连接
  • >在SSH主机上运行命令[telnet to[host-input by user]
  • >选择telnet会话中的菜单项
  • 提前感谢,


    致以最诚挚的问候,

    如果您真的在寻找一个可以让您自动进行CLI交互的模块,请参阅使用它的完整示例。

    使用或。

    现在流行的解决方案是

    有许多库可以做到这一点

  • 子流程
  • 期望
  • 帕拉米科(主要使用)
  • 织物
  • Exscript
  • 您可以查看他们的文档以了解实现。

    您可以使用该软件包,它正是为此而设计的

    所有你需要的是安装附庸和做

    from vassal.terminal import Terminal
    shell = Terminal(["ssh username@host", "cd scripts", "python foo1.py", "python foo2.py"])
    shell.run()
    
    这将每秒运行一次命令,您可以使其更快地运行以更改sec=0.1。

    我将向您介绍:

    import-spur
    shell=spur.SshShell(hostname=“localhost”、username=“bob”、password=“password1”、缺少\u host\u key=spur.ssh.MissingHostKey.accept)
    结果=shell.run([“echo”、“-n”、“hello”])
    打印(result.output)#打印hello
    
      • 通过SSH Execute命令登录-
    导入paramiko
    主机名='输入\u主机'
    用户名='输入用户'
    密码='输入密码'
    client=paramiko.SSHClient()
    client.set\缺少\主机\密钥\策略(paramiko.AutoAddPolicy())
    client.connect(主机名,用户名=用户名,密码=密码)
    stdin,stdout,stderr=client.exec_命令('cd/enter/valid/path&&ls-l'))
    对于标准输出中的行:
    打印(行.strip('\n'))
    client.close()
    
    输出:

    -rw-rw-r--1用户名2712 Jan 22 14:49文件\u 1.ini
    -rw-rw-r--1用户名用户名5928 Jan 22 14:50文件_2.log
    -rw-rw-r--1用户名用户名1454 Jan 14 23:31文件_3.sql
    -rw-rw-r--1用户名用户名337 Jan 14 23:31文件_4.py
    drwxrwxr-x 3用户名4096 Jan 14 23:33文件夹\u 1
    drwxrwxr-x 2用户名4096 Jan 14 23:33文件夹\u 2
    -rw-rw-r--1用户名用户名2566 Jan 21 12:38文件_5.md
    -rw-rw-r--1用户名用户名63 Jan 14 23:31文件_6.txt
    drwxrwxr-x 4用户名4096 Jan 14 23:31文件夹\u 3
    drwxrwxr-x 9用户名4096 Jan 21 12:38文件夹4
    
    • 不需要图书馆
    导入子流程
    subprocess.Popen(“ssh{user}@{host}{cmd}”.format(user=user,host=host,cmd=ls-l'),shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()
    
    我不明白。你需要用Python做与SSH相关的事情,你对Python的SSH模块不感兴趣吗?@Tokland,我在寻找一个示例脚本。而不是像“Fabric是简化SSH使用的Python库和命令行工具”这样的答案:)