Search code examples
pythonsshparamiko

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 ?


Solution

  • 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()