使用 Pandas 的方案,预处理日志文件,输出 CSV 文件
背景
和上篇使用的上游数据相同,日期、IP、用户名、密码的 SSH 访问日志
如下:
1 | 2025/03/07 12:20:36.496984 111.1.27.170:35638 |
日志文件读取
获取 log 文件的路径。
fakessh 服务每启动一次则会新生成一个日志文件。
使用通配符批量读取文件。
例如日志文件已放在了upstream
路径下。
1 | # 取得全部上游数据的文件路径 |
日志行解析逻辑
日志按行使用正则表达式解析,生成 Object。
使用在线工具,例如嗨正则测出一个匹配的正则表达式。
正则表达式如下:^([\d\/]+\s[\d:\.]+)\s([\d\.]+):(\d+)\s?(.*?)\s?(\S*)\s?(\S*)$
。
1 | # 初始化一个数组来存储结果 |
输出 CSV 文件
写入到指定路径downstream
下的 CSV 文件中
1 | # CSV文件输出 |
尾巴
生成的 CSV 结果如下
1 | timestamp,ip,port,client,username,password |
此方案比较前文 PowerShell 的运行速度有较大提升