2017-01-10 3 views
0

Я пытаюсь найти или создать плагин Sensu для подсчета объектов AWS S3 в папке. Например,Пытается найти плагин Sensu AWS S3

Все ковши/test1/test2/

Я хочу знать, сколько объектов находятся в пределах test2 и предупредить меня, если число превысит пороговое значение.

Я нашел это, но я не могу заставить его работать.

# by default you only get 1000 objects at a time 
# so you have to roll your own cursor 

S3.connect! 

objects = [] 
last_key = nil 
begin 
    new_objects = AWS::S3::Bucket.objects(bucket_name, :marker => last_key) 
    objects += new_objects 
    last_key = objects.last.key 
end while new_objects.size > 0 

# you can easily define the above as an all_objects method on AWS::S3::Bucket 

Если кто-то знает другой способ сделать это, пожалуйста, дайте мне знать.

Спасибо

Девон

+0

Какие ошибки вы видите? Вы настроили свои учетные данные? – thun

+0

@thun Я настроил свои учетные данные, у меня есть другие скрипты AWS rb, которые работают. Я пытаюсь запустить этот скрипт, кажется, ошибка. Конечно, я не знаю синтаксиса этого скрипта, и я новичок в рубине. В других сценариях были хорошие примеры комментариев. Я запускаю сценарий ./all_s3_objects.rb и получаю: ./all_s3_objects.rb: строка 4: S3.connect !: команда не найдена ./all_s3_objects.rb: строка 6: объекты: команда не найдена – Devon

ответ

1

я решил пойти другим путем, я использовал этот код, чтобы сделать то, что я хотел сделать.

#!/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 

Спасибо всем за помощь

Девон