使用aws logs start-query能否不指定固定start-time/end-time采用动态时间范围
AWS CLI
logs start-query 动态时间范围设置方法 完全可以实现,你不需要手动计算Unix时间戳,只需要结合当前运行环境的日期计算命令动态生成符合参数要求的时间戳即可。
aws logs start-query的--start-time和--end-time参数仅支持单位为秒的Unix纪元时间戳,我们只需要通过Shell/命令行内置的日期工具计算对应时间范围的时间戳,直接传入参数即可。
常用环境示例(以查询最近5分钟日志为例)
Linux(GNU Date 环境)
aws logs start-query \ --log-group-name 替换为你的日志组名称 \ --start-time $(date -d "-5 minutes" +%s) \ --end-time $(date +%s) \ --query-string 'fields @timestamp, @message | sort @timestamp desc | limit 20'
macOS(BSD Date 环境)
aws logs start-query \ --log-group-name 替换为你的日志组名称 \ --start-time $(date -v-5M +%s) \ --end-time $(date +%s) \ --query-string 'fields @timestamp, @message | sort @timestamp desc | limit 20'
Windows PowerShell 环境
$startTime = (Get-Date).AddMinutes(-5).ToUniversalTime() -UFormat %s $endTime = Get-Date -UFormat %s aws logs start-query ` --log-group-name 替换为你的日志组名称 ` --start-time $startTime ` --end-time $endTime ` --query-string 'fields @timestamp, @message | sort @timestamp desc | limit 20'
自定义时间范围调整方法
你可以根据需求自行修改时间计算规则,常见的调整示例:
- Linux环境查询最近1小时:将
-5 minutes修改为-1 hour - Linux环境查询最近3天:将
-5 minutes修改为-3 day - macOS环境查询最近1小时:将
-v-5M修改为-v-1H - macOS环境查询最近3天:将
-v-5M修改为-v-3d
注意:Unix时间戳本身与时区无关,不需要额外做时区转换,直接传入生成的数值即可。
内容的提问来源于stack exchange,提问作者Erwin Smith
相关产品推荐
相关产品推荐

