2013-06-04 108 views
4

我需要使用python的paramiko模塊將字符串寫入遠程主機上的文件。我一直在嘗試重定向輸入的各種方法,但沒有成功。使用python paramiko將本地字符串寫入遠程文件

在下面的代碼片段的localstring填充了一個cat命令

stdin, stdout, stderr = hydra.exec_command('cat /file.txt') 
localstring = stdout.read() 
manipulate(localstring) 
hydra.exec_command('cat > newfile.txt\n' + localstring + '\n') 

我似乎有我的腳本掛或接收EOF錯誤或沒有結果字符串的結果在文件中出現所有。請注意,該文件有多行。

回答

1

cat正在從stdin讀數。改爲使用echo

'echo ' + localstring + ' > newfile.txt' 

如果您需要回聲多行,使用-e標誌:

echo -e "Line1\nLine2\n" > file.txt 
4

您也可以使用FTP功能:

import paramiko 

ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect('example.com', username='username', password='password') 

ftp = ssh.open_sftp() 
file=ftp.file('remote file name', "a", -1) 
file.write('Hello World!\n') 
file.flush() 
ftp.close() 
ssh.close()