[Linux] 디스크 용량 로깅
2023. 5. 2. 15:41ㆍIT 공부/개발환경
시스템을 구축하다보니 특정 디렉토리의 용량이 과다하게 증가하는 시점을 확인해야 할 필요가 있다.
데이터가 주로 저장되는 디렉토리 또는 각종 프로그램이 설치되는 디렉토리가 그 대상이다.
지난 프로젝트에서는 요청이 생겼을 때 급하게 하느라 매일 터미널에서 명령어를 입력하고 엑셀로 기록했다.
하면서도 정말 비효율적이라 생각했고, 프로젝트가 끝난 지금 스크립트를 작성해보았다.
스크립트 작성은 https://www.tutorialspoint.com/execute_bash_online.php에서 진행했다.
df -h
목표 : 원하는 디렉토리의 용량을 날짜와 함께 로깅한다.
disk_usage.sh
#!/bin/bash
TODAY=$(date "+%Y-%m-%d %H:%M:%S")
# echo ${TODAY}
# awk 'NR>=4' : 4번째 행부터의 결과만 출력
# awk '{print $5}' : 5번째 열의 결과만 출력
USAGE=`df -h | awk ' NR>=4 {print $5}' | awk ' NR<2'`
# echo ${USAGE}
DISK=`df -h | awk ' NR>=4 {print $6}' | awk ' NR<2'`
# echo ${DISK}
# 파일에 저장할 문자열
RESULT="$TODAY $DISK $USAGE"
# Line이 과도하게 길어지는 것을 방지하고 관리 편의성을 위해 연도별로 파일을 분리
YEAR=$(date "+%Y")
FILE="/data/disk_usage_$YEAR.log"
# 당해 로깅파일이 있으면 텍스트 추가
# 당해 로깅파일이 없으면 빈 파일 생성 후 텍스트 추가
if [ -e $FILE ]; then
echo ${RESULT} | tee -a ${FILE}
# echo "Logging today's status"
else
touch disk_usage_${YEAR}.log
echo ${RESULT} | tee -a ${FILE}
# echo "Logging today's status after making file"
fi
실행결과는 다음과 같다.
간단한 수준이지만 프로젝트 초반에 한 번 작성해서 크론탭에 등록해두면 편리할 것 같다.
다음 프로젝트 때 한 번 더 테스트해보고 적용해봐야겠다.
참고한 블로그
https://ponyozzang.tistory.com/645
https://ppp0183.tistory.com/26
https://chanchan-father.tistory.com/969
https://www.delftstack.com/ko/howto/linux/how-to-append-text-to-a-file-using-bash/
반응형
'IT 공부 > 개발환경' 카테고리의 다른 글
[Linux] 폐쇄망을 위한 yum pakage 다운로드하기 (0) | 2024.01.26 |
---|---|
[Linux] Rocky Linux 9에서 SFTP 사용을 위한 설정 변경 (0) | 2024.01.26 |
[Linux] Crontab으로 오래된 파일 자동삭제하기 (0) | 2022.08.31 |
윈도우에서 Visual Studio Code와 Git 사용하기 (0) | 2021.04.24 |
윈도우에서 php 개발환경 만들기 (2) | 2021.04.22 |