2011-02-24 70 views
1

我想檢查一個遠程文件是否可寫或使用paramiko。 我當前的代碼是如何使用python Paramiko(SSHClient)檢查遠程文件是否可寫?

from paramiko.ssh_exception import SSHException, BadHostKeyException 
import paramiko 
import sys 
from optparse import OptionParser 
import os 

stdin, stdout, stderr = self.__econnection.exec_command('bash'); 
stdin.write('if [ -w "%s" ];'%(temp_path)) 
stdin.write("then echo True;"); 
stdin.write("else echo False;"); 
stdin.write("fi;"); 
stdin.flush(); 

但是一旦我執行這些方針,外殼只是卡住,我不得不關閉外殼。 請幫助..

+0

做一個簡單的'ls'工作? – 2011-02-24 09:33:19

+0

yes ls正常工作 – tejzpr 2011-02-24 09:38:26

+0

請寫下你的'import',以便我們查看它的文檔。 – 2011-02-24 10:31:23

回答

2

假設SSH是你的paramiko SSHClient對象,測試temp_path到該文件的路徑,並且連接已經建立嘗試以下操作:

# prepare command 
command = 'if [ -w {filename} ]; then echo True; else echo False; fi;' 
# add filename 
command = command.format(filename=temp_path) 
# execute command 
stdin, stdout, stderr = ssh.exec_command(command) 
# read the result from stdout and remove the trailing newline character 
result = stdout.readline().rstrip() 
print(result) 
相關問題