冗長で反復的なコードを記述せずに、Ubuntuサーバーから(win7マシンでPython2.7を使用して)複数のログファイルを取得したいと思います。これを達成するためにループを使用できると確信していますが、有効な解決策を思い付くことができません(neophyteプログラマー)。私よりもベテランの人の指示が必要です。上級者の方は、助けていただければ幸いです。以下は、サーバーにログインして1つのファイルを取得するためにスクリプトで使用しているコードです。以下は、同時に取得したいファイルのサンプルパスです。
/var/log/apache/a.log /var/log/apache/e.log /var/opt/smart/log/me.log /var/opt/smart/log/se.log
私にはさらにいくつかの道がありますが、あなたがその考えを理解していると思います。以下は、サーバーへのログインに使用されるコードです。
def do_siteserver(self, line):
import paramiko
paramiko.util.log_to_file('c:\Python27\paramiko-wininst.log')
host = '10.5.48.65'
port = 22
transport = paramiko.Transport((host,port))
while True:
try:
print '\n'
passW = raw_input("Enter the SiteServer weekly password: ")
password = passW
username = 'gilbert'
print '\n'
print 'Establishing SFTP connection to: ', host + ':' + str(port), '...'
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)
print 'Authorization Successful!!!'
filepath = '/var/log/apache2/error.log'
localpath = 'C:\\remote\\NewFile.log'
sftp.get(filepath, localpath)
sftp.close()
transport.close()
break
except:
print '\n'
print "Authorization Failed!!!"
break