2023. 5. 2. 15:41ㆍIT 공부/개발환경
시스템을 구축하다보니 특정 디렉토리의 용량이 과다하게 증가하는 시점을 확인해야 할 필요가 있다.
데이터가 주로 저장되는 디렉토리 또는 각종 프로그램이 설치되는 디렉토리가 그 대상이다.
지난 프로젝트에서는 요청이 생겼을 때 급하게 하느라 매일 터미널에서 명령어를 입력하고 엑셀로 기록했다.
하면서도 정말 비효율적이라 생각했고, 프로젝트가 끝난 지금 스크립트를 작성해보았다.
스크립트 작성은 https://www.tutorialspoint.com/execute_bash_online.php에서 진행했다.
Online BASH Compiler - bash
Online BASH Compiler (GNU Bash v5.1.16) Online BASH Compiler (GNU Bash v5.1.16) helps you to Edit, Run and Share your Bash Code directly from your browser. This development environment provides you version GNU Bash v5.1.16. How to give program Input? The l
www.tutorialspoint.com
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 |