Programming/Bash Shell Script

[Bash Shell Script] 백업 용량 변동 출력 쉘 스크립트 예제

Nirsa 2019. 12. 12. 15:48
반응형

백업 파일의 용량을 가져온 후 이전의 백업파일과 용량 비교하여 백업이 정상적으로 잘 되었는지 편하게 확인할 수 있는 쉘 스크립트 입니다.

 

아래 스크립트로 용량 변동 결과를 파일로 떨군 뒤, 크론탭으로 매일 몇시에 메일 전송등을 사용하여 점검을 자동화할 수 있습니다.

 

* 사용 환경에 따라 경로, 파일명(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

 

반응형