반응형
백업 파일의 용량을 가져온 후 이전의 백업파일과 용량 비교하여 백업이 정상적으로 잘 되었는지 편하게 확인할 수 있는 쉘 스크립트 입니다.
아래 스크립트로 용량 변동 결과를 파일로 떨군 뒤, 크론탭으로 매일 몇시에 메일 전송등을 사용하여 점검을 자동화할 수 있습니다.
* 사용 환경에 따라 경로, 파일명(date 날짜 포함) 수정이 필요합니다.
스크립트 작성 환경
- OS : CentOS 6.7
- Shell : Bash
#!/bin/bash
date=$(date '+%Y-%m-%d')
yesterday=$(date '+%Y-%m-%d' -d '1 day ago')
cd /backup/log ## 백업 파일이 존재하는 경로로 이동
log=`find /backup/log -name *$date* -ls | awk '{result += $7} END {print result}'` ## 백업 파일의 용량 확인
log2=`find /backup/log -name *$yesterday* -ls | awk '{result += $7} END {print result}'` ## 이전 백업 파일의 용량 확인
md=`date -r $backup/log/*$date3*` ## 백업 파일의 수정된 시간을 md 변수로 이동
echo "수정된 시간: $md"
md=
if [ "$log" -le "1024" ]; then ## 백업 파일의 용량을 Byte로 환산
echo "access_log : $log Byte"
BY=$(echo "scale=3;$log / 1048576" | bc)
BY2=$(echo "scale=3;$log2 / 1048576" | bc)
num=$(echo "$BY $BY2" | awk '{printf "%.3f", $1-$2}')
if [ "$log" -gt "$log2" ]; then
echo -e "\033[31m"전일 대비 $log Byte 상승 하였습니다."\033[0m"
fi
if [ "$log" -lt "$log2" ]; then
echo -e "\033[32m"전일 대비 $log Byte 하락 하였습니다."\033[0m"
fi
if [ "$log" -eq "$log2" ]; then
echo "전일 대비 용량 변동이 없습니다."
fi
fi
if [ "$log" -ge "1024" ] && [ "$log" -le "1048575" ]; then ## 백업 파일의 용량을 kbyte로 환산
KB=$(echo "scale=3;$log / 1024" | bc)
KB2=$(echo "scale=3;$log2 / 1024" | bc)
num=$(echo "$KB $KB2" | awk '{printf "%.3f", $1-$2}')
echo "access_log : $KB KB"
if [ "$log" -gt "$log2" ]; then
echo -e "\033[31m"전일 대비 $num KB 상승 하였습니다."\033[0m"
fi
if [ "$log" -lt "$log2" ]; then
echo -e "\033[32m"전일 대비 $num KB 하락 하였습니다."\033[0m"
fi
if [ "$log" -eq "$log2" ]; then
echo -e "전일 대비 용량 변동이 없습니다."
fi
fi
if [ "$log" -ge "1048576" ] && [ "$log" -le "1073741823" ]; then ## 백업파일의 용량을 mbyte로 환산
MB=$(echo "scale=3;$log / 1048576" | bc)
MB2=$(echo "scale=3;$log2 / 1048576" | bc)
num=$(echo "$MB $MB2" | awk '{printf "%.3f", $1-$2}')
echo "access_log : $MB MB"
if [ "$log" -gt "$log2" ]; then
echo -e "\033[31m"전일 대비 $num MB 상승 하였습니다."\033[0m"
fi
if [ "$log" -lt "$log2" ]; then
echo -e "\033[32m"전일 대비 $log MB 하락 하였습니다."\033[0m"
fi
if [ "$log" -eq "$log2" ]; then
echo "전일 대비 용량 변동이 없습니다."
fi
fi
if [ "$log" -ge "1073741824" ]; then ## 백업파일의 용량을 gbyte로 환산
GB=$(echo "scale=3;$log / 1073741824" | bc)
GB2=$(echo "scale=3;$log2 / 1073741824" | bc)
num=$(echo "$GB $GB2" | awk '{printf "%.3f", $1-$2}')
echo "access_log : $GB GB"
if [ "$log" -gt "$log2" ]; then
echo -e "\033[31m"전일 대비 $num GB 상승 하였습니다."\033[0m"
fi
if [ "$log" -lt "$log2" ]; then
echo -e "\033[32m"전일 대비 $num GB 하락 하였습니다."\033[0m"
fi
if [ "$log" -eq "$log2" ]; then
echo "전일 대비 용량 변동이 없습니다."
fi
fi
반응형
'Programming > Bash Shell Script' 카테고리의 다른 글
[Bash Shell Script] 쉘 스크립트 if조건문 라인에서의 "[: too many arguments" 에러 발생 (0) | 2019.12.17 |
---|---|
[Bash Shell Script] 쉘 스크립트 trap 명령어를 이용한 시그널 제어 (0) | 2019.12.17 |
[Bash Shell Script] 로그 추출, 정리 쉘 스크립트 예제 (0) | 2019.12.17 |
[Bash Shell Script] DNS 도메인/호스트 추가 자동화 쉘 스크립트 예제 (0) | 2019.12.12 |
[Bash Shell Script] 쉘 스크립트 로딩 바 구현 (0) | 2019.12.12 |