반응형

디스코드 웹훅을 이용해서 현재 리눅스 서버의 스토리지 사용량을 전달받는 스크립트를 만들어 보았다.

사실 오라클 클라우드에서 사용하려고 만들었다.

오라클 클라우드에서 plex 서버를 사용하는 경우 스토리지가 꽉 차서 먹통이 되는 것을 방지하기 위해 사용량을 자주 파악해야 하는 경우가 있다.

 

#!/bin/bash

## 디스코드 웹훅 URL - 이대로 쓰시면 안 됩니다. 본인 디스코드에서 생성하여 넣어주세요.
discord_webhook_url="https://discordapp.com/api/webhooks/...(생략).../...(생략)...."

## 주 사용 스토리지명 - df 명령어로 확인할 수 있음 - 본인한테 맞는 스토리지명으로 수정
storage="/dev/sda1"

## 현재 서버 IP를 가져와 변수(my_ip)에 저장
my_ip=$(curl -s http://ifconfig.me)

## df 명령어를 실행하면 나오는 정보 중 주 사용 스토리지의 정보 중 % 앞 부분만 변수(storage_line)에 저장
storage_line=$(df | grep $storage" " | cut -d "%" -f1)

## 뒤에서 두자리만 가져와 변수(used_rate)에 저장 - 100% 이면 00을 가져옴
used_rate="${storage_line:(-2)}"

## 사용량이 100% 일때는 used_date 가 00 이므로 100으로 바꿔줌
if [ $used_rate -eq "00" ]
then
	used_rate="100"
fi

## 날짜표시
timestamp=`date "+%Y년 %m월 %d일 %H시 %M분"`

## 디스코드 알림 메시지 (시간 - IP - 스토리지 사용률 : n%)
msg="${timestamp} - IP : ${my_ip} - 스토리지 사용률 : ${used_rate}"

## curl 명령을 사용하여 디스코드 웹훅 전송
curl -X POST -H "Content-Type: application/json" \
-d "{ \"content\":\"$msg%\" }" \
$discord_webhook_url

 

이걸 sh 파일로 저장해서 crontab -e 에 저장해서 스케쥴을 걸어서 사용하면 편하다.

 

0 */1 * * * ~/discord_send_저장공간사용량.sh

 

이렇게 하면 1시간에 1번씩 사용량을 디스코드로 보낸다

반응형

+ Recent posts