Splunk 存储桶名称转换为纪元到人类脚本

Splunk bucket name conversion to epoch to human script

我面临以下问题:我在 Splunk 环境中有一些以纪元格式保存的冻结桶。更具体地说,模板是:

db_1181756465_1162600547_1001

如果转换,return 对我来说结束日期在第一个数字中,开始日期在第二个数字中。所以,这意味着,基于我的例子:

1181756465 = Wednesday 13 June 2007 17:41:05
1162600547 = Saturday 4 November 2006 00:35:47

现在,转换成人类对我来说很清楚,也是因为如果不是我就不能把翻译放在这里。我的问题是我的文件中充满了必须转换的存储桶名称,其中有数百个条目;所以,我问是否有脚本或其他方法来自动执行此转换并将输出打印到文件中。这个想法是让最终的输出像这样:

db_1181756465_1162600547_1001 = Wednesday 13 June 2007 17:41:05 - Saturday 4 November 2006 00:35:47

您可以使用 Splunk 查看这些值。它们是从 dbinspect 命令输出的,该命令为冻结桶

提供 startEpoch 和 endEpoch 时间
| dbinspect index=* state=frozen
| eval startDate=strftime(startEpoch,"%A %d %B %Y %H:%M:%S")
| eval endDate=strftime(endEpoch,"%A %d %B %Y %H:%M:%S")
| fields index, path, startDate, endDate

列出使用热桶的示例,因为我在此测试系统中没有冻结

如果您只有文件夹名称列表,您可以将其作为 CSV 文件上传到 Splunk 实例,并进行一些处理以提取开始日期和结束日期

| makeresults
| eval frozenbucket="db_1181756465_1162600547_1001"
| eval temp=split(frozenbucket,"_") 
| eval sDate=mvindex(temp,2)
| eval eDate=mvindex(temp,1)
| eval startDate=strftime(sDate,"%A %d %B %Y %H:%M:%S")
| eval endDate=strftime(eDate,"%A %d %B %Y %H:%M:%S")
| fields frozenbucket,startDate,endDate
| fields - _time