Python Paramiko - 运行命令

标签 python ssh paramiko

我尝试运行这个脚本:

hostname = '192.168.3.4'
port = 22
username = 'username'
password = 'mypassword'
y = "2012"
m = "02"
d = "27"

if __name__ == "__main__":
   s = paramiko.SSHClient()
   s.load_system_host_keys()
   s.connect(hostname, port, username, password)
   command = 'ls /home/user/images/cappi/03000/y/m/d'
   s.close

问题是: 如何将变量 ymd 放入变量 command 中?

最佳答案

Python 有很多方法来执行字符串格式化。最简单的方法之一是将字符串的各个部分简单地连接在一起:

#!/usr/bin/env python
import paramiko

hostname = "192.168.3.4"
port = 22
username = "username"
password = "mypassword"
y = "2012"
m = "02"
d = "27"

def do_it():
    s = paramiko.SSHClient()
    s.load_system_host_keys()
    s.connect(hostname, port, username, password)
    command = "ls /home/user/images/cappi/03000/" + y + "/" + m + "/" + d
    stdin, stdout, stderr = s.exec_command(command)
    for line in stdout.readlines():
        print line
    s.close()

if __name__ == "__main__":
    do_it()

关于Python Paramiko - 运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470584/

相关文章:

python - fatal error : Incompatible ssh peer (no acceptable kex algorithm)

python - 如何在Python Paramiko中配置等效的ssh StrictHostKeyChecking = no

python - python中两个数组之间的部分匹配

python - 增加QtWebKit每台主机的最大连接数

python - 在 Python 中进行多线程/并行处理的最简单方法

python - Paramiko 在执行大型 wget 命令时挂起

linux - 无法将 slave.jar 复制到 slave 上的 '/home/jenkins'

python - 如何捕获大括号之间的文本以及这些大括号内的特定模式

mysql - 将所有表从数据库复制到另一个服务器数据库

Python - 通过/SSH 使用远程主机的 env 变量