引数としてファイルのリストを使って試してみるまで、私はparamikoのexec_commandをlsと一緒に使用しました。 My機能は次のとおりです。paramiko lsがいくつかのファイルの出力を切り捨てました
def jz_orion_ssh_sout_list(cmd):
with paramiko.SSHClient() as ssh:
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(orion['host'], username=orion['username'], password=orion['password'])
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd)
sout = ssh_stdout.readlines()
serr = ssh_stderr.readlines()
return sout
ときcmd='ls -l /my/path/file.txt'
それがうまく動作しますが、cmd='ls -l /my/path/file1.txt file2.txt file3.txt'
は、それだけでFILE1.TXT返したとき。後者のcmdは、ターゲットサーバー上で直接実行され、3つのファイルすべてを返します。
paramikoで動作させるには?
PS。私はparamiko:cmd='ls -l /my/path/{file1.txt,file2.txt,file3.txt}'
で動作する別の構文を見つけましたが、まだ私は前に述べたものと一緒に失敗を引き起こす原因を知りたいと思います。
'ls -l/my/path/file [1-3] .txt'を使わないのはなぜですか? – haifzhan