gpt4 book ai didi

python - 我想用最少的代码行从服务器检索多个日志

转载 作者:太空狗 更新时间:2023-10-30 00:57:40 24 4
gpt4 key购买 nike

我想从 Ubuntu 服务器(在 win 7 机器上使用 Python 2.7)检索多个日志文件,而不必编写冗长、重复的代码。我确定我可以使用循环来完成此操作,但我无法提出任何有效的解决方案(新手程序员)。我需要比我更有经验的人的指导。在高级方面,我感谢您的帮助。下面是我在脚本中用来登录服务器并检索一个文件的代码。下面是我想同时检索的文件的示例路径:

/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

最佳答案

代替

filepath = '/var/log/apache2/error.log'
localpath = 'C:\\remote\\NewFile.log'
sftp.get(filepath, localpath)

我建议:

log_names = {
"/var/log/apache2/error.log" : 'C:\\remote\\NewFile.log',
"/var/log/apache/a.log" : 'C:\\remote\\NewFile_a.log',
} # add here all the log files you want to retrieve
for log_file, local_name in log_names.iteritems():
sftp.get(log_file, local_name)

关于python - 我想用最少的代码行从服务器检索多个日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5857465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com