IBM Cloud의 File Storage 사용률을 확인하는 스크립트

IBM Cloud의 File Storage 사용률을 확인하는 간단한 스크립트를 작성하고 검토했습니다.



전제 환경



· Local PC (Mac)의 터미널에서 실행
· IBM Cloud 계정을 보유하고 있습니다.
· IBM Cloud에서 FileStorage 사용
· 실행 환경에서 ibmcloud CLI를 사용할 수 있습니다.

IBM Cloud File Storage 정보:
h tps : // c ぉ d. 이 bm. 코 m / 드 cs / 후 ぇ S 토라 케? 토피 c = 훗 S

IBM Cloud File Storage 서비스 CLI 작업 정보:
h tps : // c ぉ d. 이 bm. 이 m/두 cs/cぃ? 토피 c = c ぉ u d ぃ - sl - ぃ ぇ - s touge - r ゔ ぃ 세 & ぉ ぇ =

처리는 주로 "ibmcloud sl file volume-list"명령을 사용합니다.
htps : // c ぉ d. 이 bm. 이 m/두 cs/cぃ? 토피 c = c ぃ-sl fu ぇ ぇ s shoo-r ゔ ぃ 세 & ぉ 카 ぇ = 그럼 # sl_ 푸 ぇ _ ぉ ぅ ぃ st

처리는 쉘 스크립트(bash)로 실시하고 있습니다.
IBM Cloud 계정에 연결하는 File Storage 조작이 가능한 API 키를 사용하십시오.

IBM Cloud API key 정보:
h tps : // c ぉ d. 이 bm. 이 m/도 cs/아 m? 토피 c = 아니 m- 마나 피케 y & ぉ 카 =

IBM Cloud CLI 로그인 옵션:
h tps : // c ぉ d. 이 bm. 이 m/두 cs/cぃ? 토피 c = c ぃ-i bmc ぉ d_c ぃ # i bmc ぉ d_ ぉ

샘플 스크립트



filestorage.sh
#!/bin/bash

## ibmcloud cli download
curl -fsSL https://clis.cloud.ibm.com/install/linux | sh > /dev/null

ibmcloud login --apikey "apikey" -r "region" -g "resource group" > /dev/null

ibmcloud sl file volume-list --column username | grep -v username > FileStorage.txt

echo "IBM Cloud FileStorage Usage: Username = % , ( total ) " > result.txt

while read line
do
 used_b=`ibmcloud sl file volume-list -u "$line" --column bytes_used | grep -v bytes_used`
 capacity_gb=`ibmcloud sl file volume-list -u "$line"  --column capacity_gb | grep -v capacity_gb`
 capacity_b=`echo $(($capacity_gb*10000000)) `
 tag=`ibmcloud sl file volume-list -u "$line" --column notes | grep -v notes`
 result=`awk "BEGIN { print $used_b/$capacity_b }"`
 echo $line, $tag = $result % "(" $capacity_gb GB ")"
done <FileStorage.txt >> result.txt

cat result.txt

rm FileStorage.txt
rm result.txt


처리 개요



· IBM Cloud 로그인
· 사용중인 File Storage 대상 취득
· 대상 분의 루프 처리 : File Storage의 총 용량, 사용 용량을 취득하여 사용률을 계산
· 결과 출력
· 임시 파일 삭제

사용하는 값에 대한 주석



품목
내용


1
"apikey"
IBM Cloud 계정에 연결하는 File Storage 조작이 가능한 API 키. 실행할 때 대상 API 키로 바꾸기

2
"region"
실행할 때 대상 리전으로 교체

3
"resource group"
실행할 때 대상 리소스 그룹으로 대체

4
FileStorage.txt
스크립트 처리 내에서 File Storage 정보를 일시적으로 저장하는 파일

5
used_b
암호화 처리에서 File Storage의 byte 사용률에 대한 임시 변수

6
capacity_gb
스크립트 처리에서 File Storage GB 사용률의 임시 변수

7
cabacity_b
스크립트 처리에서 File Storage의 byte 사용률에 대한 임시 변수

8
- column notes
ibmcloud sl 옵션. FileStorage에 notes(tag) 를 사용하고 있다고 표시할 수 있게 된다

9
result.txt
스크립트 처리 내에서 처리 결과를 일시적으로 저장하는 파일



실행



다음과 같은 결과를 얻을 수 있습니다.
 # ./filestorage.sh
IBM Cloud FileStorage Usage: Username = % ,  ( total )
Dxxxxxxxxxxxxxx_1, filestorage1 = 62.8373 % , ( 600 GB )
Dxxxxxxxxxxxxxx_2, filestorage2  = 11.032 % , ( 500 GB )
Dxxxxxxxxxxxxxx_3, filestorage3 = 50.8622 % , ( 100 GB )


대상 계정에서 사용하는 세 개의 File Storage 사용률을 확인할 수 있습니다.

이 작업을 작업하고 Slack 연동하고 싶습니다.

**** 추가 ************************************************** ***************

스크립트에 Slack 채널에 Post하는 curl 명령을 추가했습니다.

filestorage.sh
#!/bin/bash

## ibmcloud cli download
curl -fsSL https://clis.cloud.ibm.com/install/linux | sh > /dev/null

## login

ibmcloud login --apikey "apikey" -r "region" -g "resource group" > /dev/null

## volume information

ibmcloud sl file volume-list --column username | grep -v username > FileStorage.txt

echo `date` > result.txt
echo "IBM Cloud FileStorage Usage: Username = % ,  ( total )" >> result.txt

## volume usage 

while read line
do
 used_b=`ibmcloud sl file volume-list -u "$line" --column bytes_used | grep -v bytes_used`
 capacity_gb=`ibmcloud sl file volume-list -u "$line"  --column capacity_gb | grep -v capacity_gb`
 capacity_b=`echo $(($capacity_gb*10000000)) `
 tag=`ibmcloud sl file volume-list -u "$line" --column notes | grep -v notes`
 result=`awk "BEGIN { print $used_b/$capacity_b }"`
 echo $line, $tag = $result % , "(" $capacity_gb GB ")" 
 done <FileStorage.txt >> result.txt

MESSAGE=`cat result.txt`

## post to slack 

curl -X POST --data-urlencode "payload={\"username\": \"FileStorageCheck\",  \"text\": \"IBM Cloud : FileStorage Usage: \\n ${MESSAGE}\", \"icon_emoji\": \":cloud:\"}" https://hooks.slack.com/services/xxxxxxxxxx/xxxxxxxXXXx/XXxxxxxxXXXXXXXX #(<- channel のWebhook)

rm FileStorage.txt
rm result.txt

· Slack의 출력 이미지



이상입니다.

좋은 웹페이지 즐겨찾기