AWS에서 객체 수를 세고 객체가 너무 많으면 경고합니다.

AWS에서 객체 수를 세고 객체가 너무 많으면 경고합니다.

bash 스크립트를 만들려고합니다. AWS 명령을 실행하면 결과 하단에 "Total Objects"라고 표시됩니다. 개체가 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

도와주셔서 감사합니다

데번

관련 정보