python获取远程服务端日志,并解析出关键字后耗时
import paramiko
import re
# 远程主机的IP地址、用户名和密码
host = 'remote_host_ip'
username = 'username'
password = 'password'
# 创建SSH客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接远程主机
ssh.connect(host, username=username, password=password)
# 远程执行命令获取日志文件内容
command = 'type log_file.txt' # 假设日志文件名为log_file.txt
stdin, stdout, stderr = ssh.exec_command(command)
# 读取命令输出
logs = stdout.read().decode('utf-8')
# 关闭SSH连接
ssh.close()
# 筛选关键字并提取耗时
keyword = '关键字'
pattern = r'{} (\d+)'.format(keyword)
matches = re.findall(pattern, logs)
if matches:
# 输出耗时
print('日志中关键字 "{}" 后的耗时:'.format(keyword))
for match in matches:
print(match)
else:
print('未找到日志中的关键字 "{}"'.format(keyword))
except paramiko.AuthenticationException:
print('认证失败,请检查用户名和密码。')
except paramiko.SSHException as ssh_ex:
print('SSH连接错误:', str(ssh_ex))
except paramiko.SFTPException as sftp_ex:
print('SFTP操作错误:', str(sftp_ex))
except Exception as ex:
print('错误:', str(ex))
以下变量的值需根据实际情况做出改变:
remote_host_ip
: 远程Windows主机的IP地址。
username
: 用于SSH连接的用户名。
password
: 用于SSH连接的密码。
log_file.txt
: 远程Windows主机上的日志文件名。
关键字
: 要筛选的关键字。
请注意,此脚本使用了paramiko库来建立SSH连接并执行命令。在运行脚本之前,需要确保已安装paramiko库。可以使用以下命令安装该库:
pip install paramiko
此外,脚本还使用了正则表达式模块re来进行关键字的筛选和提取。根据实际需求,可能需要调整正则表达式模式以匹配日志文件中的正确格式。