Bash скрипт для получения общего размера папок в корзине s3 - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь написать сценарий bash, чтобы получить общий размер подпапок в корзине S3.

Мой путь к корзине s3: // path1 / path2 / subfolders

Внутри папки path2 у меня много подпапок, например

2019_06
2019_07
2019_08
2019_09
2019_10
2019_11
2019_12

Мне нужно получить размер каждой подпапки в сценарии bash.

Я написал скрипт типа

    #!/bin/bash

    FILES=$(mktemp)

    aws s3 ls "s3://path1/path2/"  >> "$FILES"

 cat $FILES
echo

for file in $FILES
do    

  if [ ! -e "$file" ]      
  then 
s3cmd du -r  s3://path1/path2/$file
   echo "$file"; echo
   continue               
 fi 

echo
done

Вывод команды cat $ tmpfile выглядит следующим образом

2019_06
2019_07
2019_08
2019_09
2019_10
2019_11
2019_12

Но получаю ошибку. При передаче переменной в для l oop. В идеале моя цель похожа на каждую итерацию, когда для l oop выполняется внутри do ..... Команда должна выглядеть так:

s3cmd du -r s3: // путь1 / путь2 / 2019_06

s3cmd du -r s3: // путь1 / путь2 / 2019_07

s3cmd du -r s3: // path1 / path2 / 2019_08

et c ...

Чтобы я мог получить общий размер папки

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 29 апреля 2020

Вы можете сделать это, используя xargs:

aws s3 ls "s3://path1/path2/" | xargs -n1 -I{} s3cmd du -r "s3://path1/path2/{}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...