【问题标题】:S3 Bash Script loopingS3 Bash 脚本循环
【发布时间】:2011-12-06 16:29:08
【问题描述】:

我编写了一个脚本来获取我的 S3 存储的大小,该脚本工作正常,除非它不断循环并且永远不会结束。我得到了我需要的所有输出,但它一直在通过它们。

关于为什么它循环的任何想法?

#!/bin/sh
DAY=$(date +"%d%b%Y")
BUCKET='/home/user/Scripts/Holding/s3buckets.txt'
BLIST='/home/user/Scripts/Holding/blist.txt'
LOGDIR='/home/user/Scripts/Holding/'
USAGE=$BLIST
s3cmd ls > $BUCKET
awk '{print $3}' $BUCKET > $BLIST 
while read USAGE; do
s3cmd du -H $USAGE
done < $BUCKET > $LOGDIR/S3Usage$DAY.txt

【问题讨论】:

  • s3cmd ls输出的格式是什么?
  • 2011-01-28 15:24 s3://bucket1 2010-12-24 10:51 s3://bucket2
  • 当你要用while read ... &lt; $BUCKET 破坏它时,为什么你有USAGE=$BLIST

标签: bash shell s3cmd


【解决方案1】:

s3cmd du -H $USAGE 更改为s3cmd du -H s3://$USAGE

如果没有s3://,s3cmd 默认会列出所有存储桶。我敢打赌s3buckets.txt 只有存储桶名称,而不是协议前缀。

【讨论】:

  • s3bucklist.txt 是 s3 的列表,然后 blist.txt 将它们切割成正确前缀的列表,所以不确定这是否是原因
  • 啊,有道理。问题是你正在做所有这些来准备$BLIST,然后忽略它并从$BUCKET阅读。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多