如何在Shell中为AWS CloudWatch命令设置动态起止时间?
在Shell中实现AWS CloudWatch动态时间参数
当然可以实现,AWS CLI要求时间参数必须是ISO 8601 UTC格式(比如2023-06-12T01:00:00Z),我们可以用Shell的date命令生成符合要求的动态时间。
Linux/Unix 环境下的完整命令
aws cloudwatch get-metric-statistics \ --region ap-south-1 \ --namespace AWS/RDS \ --metric-name DBLoad \ --period 60 \ --statistics Average \ --start-time $(date -u -d "12 hours ago" +"%Y-%m-%dT%H:%M:%SZ") \ --end-time $(date -u +"%Y-%m-%dT%H:%M:%SZ")
参数说明
date -u:强制输出UTC时间,和CloudWatch使用的时区匹配,避免时间偏差-d "12 hours ago":指定生成12小时前的时间+"%Y-%m-%dT%H:%M:%SZ":把时间格式化为AWS要求的ISO 8601格式
macOS 环境下的适配命令
macOS使用BSD版本的date命令,参数和Linux不同,需要调整为:
aws cloudwatch get-metric-statistics \ --region ap-south-1 \ --namespace AWS/RDS \ --metric-name DBLoad \ --period 60 \ --statistics Average \ --start-time $(date -u -v-12H +"%Y-%m-%dT%H:%M:%SZ") \ --end-time $(date -u +"%Y-%m-%dT%H:%M:%SZ")
内容的提问来源于stack exchange,提问作者shantanuo
相关产品推荐
相关产品推荐

