确定AWS密钥的使用期限时,date命令无效的日期

时间:2018-07-13 15:20:29

标签: bash amazon-web-services aws-iam

我必须报告上次使用AWS密钥的时间。我正在为此脚本使用bash。如果尚未使用键,则该值为'null',我必须对此加以考虑。

当我尝试使用date命令时,出现以下错误:

date: invalid date ‘"2018-07-13T14:49:00Z"’
date: invalid date ‘null’

这是我的代码,我试图用来打印这些值:

if [[ "$key1_last_used" = 'null' ]]; then
    key1_last_used="key was never used."
   else
     key1_last_used=$(date --date $key1_last_used_date "+%B %d %Y")
   fi

如果我通过以下命令确定密钥的使用期限:

aws iam  get-access-key-last-used --access-key-id AKIAISEHPFM2DRIMIXXQ  --profile=nonprod  | jq '.AccessKeyLastUsed.LastUsedDate'

并获得此回复:

"2018-07-13T14:57:00Z"

代码随后运行以下日期命令:

date --date '"2018-07-13T15:01:00Z"' '+%B %d %Y'

并产生以下结果:

date: invalid date ‘"2018-07-13T15:01:00Z"’

如果然后我遇到一个未被使用的密钥:

aws iam get-access-key-last-used --access-key-id AKIAIDZ7X4JCS5ANNXGQ --profile=nonprod | jq '.AccessKeyLastUsed.LastUsedDate'

我收到此回复:

null

运行date命令时,将null视为无效输入:

date --date null '+%B %d %Y'
date: invalid date ‘null’

我不知道为什么日期无法正确打印。这些多余的报价从哪里来?而且我不知道为什么if / then无法识别空输出。

2 个答案:

答案 0 :(得分:1)

您可以使用jq -r获取不带引号的字符串。

答案 1 :(得分:0)

尝试使用

key1_last_used="Null"

以下作品

echo $(date "+%B %d %Y" ) $key1_last_used