查找iam访问密钥的年龄和用户最后一次登录的Shell脚本
您将不得不使用日期操作来完成相同的操作。将CreatedDate保存在一个变量中。然后,您可以使用下面的代码来获取经过的天数:
#!/bin/bash
datediff() {
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
echo $(( (d1 - d2) / 86400 )) days
}
datediff $(date --iso-8601=seconds) $createdDate
使用GNU awk:
awk -F" '{ gsub("[-:TZ]"," ",$4);print (((strftime("%s")-mktime($4))/60)/60)/24 }' <<< '"CreateDate": "2021-02-01T12:02:36Z"'
使用gsub代替-,:,T,Z作为空格。使用mktime创建已转换日期的纪元版本。使用strftime计算epoch格式的差值,然后除以60得到分钟,再除以60得到小时,再除以24得到天。
- 通过
jq
查询从json中提取原始日期 - 使用
date
计算差异
#!/bin/bash
user=$1
PASS_LAST_USED="$(aws iam get-user --user-name $user | jq -r '.User.PasswordLastUsed')" #| grep -i PasswordLastUsed
CREATE_DATE="$(aws iam list-access-keys --user-name $user | jq -r '.AccessKeyMetadata[].CreateDate')" #| grep -i createdate
echo "$(( ( $(gdate "+%s") - $(gdate -d "$PASS_LAST_USED" "+%s") )/(60*60*24) )) days"
echo "$(( ( $(gdate "+%s") - $(gdate -d "$CREATE_DATE" "+%s") )/(60*60*24) )) days"