计算来自 AWS 的对象并在太多时发出警告

计算来自 AWS 的对象并在太多时发出警告

我正在尝试创建 bash 脚本。当我运行 AWS 命令​​时,结果底部显示“对象总数”。如果对象超过 50 个,我想触发警告。

aws s3 ls test.domain.com/dir1/dir2/dir3/ --human-readable --summarize
value=$( grep -ic "Total Objects")
if [ $value -gt 50 ]
then 
  echo "Warning"
fi

这是更新后的代码:

value=$(aws s3 ls test.domain.com/dir1/dir2/dir3/  --human-readable --summarize | grep -ic "Total Objects")
if [ $value -gt 10 ];
then
    echo "Warning"
fi

请让我知道我做错了什么。

答案1

在命令替换中合并aws和:grep$()

value=$(aws s3 ls test.domain.com/dir1/dir2/dir3/ --human-readable --summarize | grep -ic "Total Objects")

当前您正在从awsSTDOUT 获取输出,并且grep没有可操作的文件。

答案2

$ value=$(echo 'Total Objects: 53 Total Size: 7.0 MiB '|grep -oP '(?<=Total Objects: )\d+')
$ echo $value
53

答案3

我决定走不同的路线,我使用这段代码来完成我想做的事情。

#!/bin/bash
value=$(aws s3 ls bucket/dir1/dir2/ -- recursive --human-readable --summarize | grep .file type | wc -l)
if [ $value -gt 1000 ];
then
      echo "$value Warning"
      exit 2
fi

谢谢大家的帮助

德文郡

相关内容