2017-05-27 12 views
2

Webサーバからファイルを取得しようとしていますが、これをpythonで行いたいと思います。私はリモートマシン上のファイルをwilltarの下に置いて、それらをすべてローカルのマシンに戻すコマンドを持っています。私はos.systemを使ってこれを手動で行い、パスワードを要求します。私はそれを入力し、ファイルをプルします。とにかくos.systemからパスワードプロンプトを検出するかどうか、またはpexpectを使用してパスワードプロンプトを検出して入力しますが、ファイルはコピーされません。何か案は?sshコマンドに埋め込まれたtarコマンドを実行します

ssh [email protected] 'tar -cvf - -C /usr/home/user1 .' | tar -xvf - 

username = "user1" 
servername = "myserver" 
mypath = "/usr/home/user1" 
import os 
os.system("ssh [email protected] 'tar -cvf - -C /usr/home/user1 .' | tar -xvf -") 
[email protected]'s password: 
+1

を維持再帰的に意味? – 3141

答えて

0

あなたが例えば参照、パスワードを要求せずに接続するようにSSHを設定することができるはずです:http://web.archive.org/web/20160404025901/http://jaybyjayfresh.com/2009/02/04/logging-in-without-a-password-certificates-ssh/

注意を、あなたはまた、再帰的にフォルダ全体をコピーするためにscpコマンドを使用することができます。

scp -rp sourcedirectory [email protected]:/path 

-r使用scpコマンドを使用しないのはなぜ -p手段は、属性

+0

残念ながら、これらのサーバーでは証明書を使用できません。また、scpを使用することもできますが、scpが動作する方法は、各ファイルのセッションを閉じ、1つのコマンドで1つのセッションでtarファイルをコピーするのと比べて何百ものファイルをコピーするのに時間がかかります。 –

関連する問題