无法导航到远程Linux机器上的所需文件夹,我如何使用paramiko执行此操作?

时间:2017-03-20 06:49:08

标签: python windows ssh paramiko

我正在使用Pyhton paramiko和 我的网站服务器有像这样的文件夹结构 -

1]dir1
      --dirP
      --dirQ
2]dir2
      --dirA
          --file.sh
      --dirB
3]dir3

我想从dir2文件夹中的dirA访问file.sh

我试过了 -

import paramiko
client.connect('mysite.com', username='something', password='something')
stdin, stdout, stderr = client.exec_command('cd dir2')
stdin, stdout, stderr = client.exec_command('ls')
for line in stdout:
    print('... ' + line.strip('\n'))

但我得到输出 -

  ...dir1
  ...dir2
  ...dir3

预期产出是 -

...dirA
...dirB

并建议我如何执行file.sh?

2 个答案:

答案 0 :(得分:0)

client.exec_command("cmd ...")就像命令ssh user@host "cmd ..."所以

client.exec_command('cd dir2')
client.exec_command('ls')

就像

ssh user@host 'cd dir2' # this would not affect the following `ls'
ssh user@host 'ls'

。所以你需要这样做:

client.exec_command('cd dir2; ls')

就像

ssh user@host 'cd dir2; ls'

答案 1 :(得分:0)

或者如果您使用变量需要添加+例如

client.exec_command('str(var1)+str(var2))