Skip to content
Advertisement

Python Paramiko – Run command

I’m try to run this script:

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

The question is: how can I put the variables y,m,d into the variable command ?

Advertisement

Answer

Python has lots of ways to perform string formatting. One of the simplest is to simply concatenate the parts of your string together:

#!/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()
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement