我有个gerrit的sshd日志,如何用python去分析每个人在什么时间访问了哪个目录
时间: 2023-12-06 19:44:51 浏览: 27
可以使用Python中的正则表达式(re模块)和时间处理模块(datetime模块)来解析日志并提取所需信息。以下是一个简单的示例代码:
```python
import re
from datetime import datetime
# 定义正则表达式模式
pattern = r'(?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}).*\[sshd\](?P<user>.*)CD\[(?P<directory>.*)\]'
# 打开日志文件并逐行解析
with open('gerrit_sshd.log', 'r') as f:
for line in f:
match = re.search(pattern, line)
if match:
# 提取匹配到的信息
date_str = match.group('date')
time_str = match.group('time')
user = match.group('user')
directory = match.group('directory')
# 将日期时间字符串转换为datetime对象
timestamp = datetime.strptime(f'{date_str} {time_str}', '%Y-%m-%d %H:%M:%S')
# 输出结果
print(f'{timestamp} - {user} accessed {directory}')
```
在上面的代码中,我们首先定义了一个正则表达式模式,用于匹配日志中的日期时间、用户名和目录信息。然后,我们打开日志文件并逐行解析,对于每一行,如果匹配到了我们想要的信息,就提取出来并将日期时间字符串转换成datetime对象,最后输出结果。