소개
이번 챌린지에서는 제공된 리눅스 시스템 모니터링 스크립트에 로깅 기능을 추가하여 기능을 확장해 봅니다. 목표는 매 모니터링 주기마다 CPU, 메모리, 디스크와 같은 리소스 사용량을 로그 파일에 기록하는 것입니다. 이 과제를 통해 파일 기반 출력을 포함하도록 쉘 스크립트를 수정하고 확장하는 능력을 점검할 수 있습니다.
기본 스크립트가 제공되며, 여러분은 여기에 로깅 기능을 직접 구현해야 합니다.
시스템 모니터에 로깅 기능 추가
과제
/home/labex/project/system_monitor.sh스크립트를 수정하여 CPU, 메모리, 디스크 사용량을 동일한 디렉터리에 있는resource_usage.log파일에 추가 (append) 하도록 만드세요. 각 로그 항목에는 현재 날짜와 시간이 포함되어야 합니다.
요구 사항
- 로그 파일의 이름은 반드시
resource_usage.log여야 하며/home/labex/project디렉터리에 위치해야 합니다. - 각 로그 항목에는 날짜, 시간, 그리고 CPU, 메모리, 디스크의 리소스 사용량 백분율이 포함되어야 합니다.
- 로깅 로직은 각 모니터링 주기 내에서 리소스 사용량 값이 계산된 직후에 실행되도록 구현해야 합니다.
힌트
- 현재 날짜와 시간을 가져오려면
date '+%Y-%m-%d %H:%M:%S'와 같이date명령어를 사용하세요. 출력 형식을 지정하는 방법은man date페이지에서 자세히 확인할 수 있습니다. - 파일에 내용을 추가할 때는
>>연산자를 사용해야 한다는 점을 기억하세요. 기존 내용을 덮어쓰지 않도록 주의해야 합니다. - 로그 파일에 기록하기 전에 리소스 사용량 값들을 하나의 문자열로 결합하세요. 변수와 문자열 보간법 (string interpolation) 을 활용하면 편리합니다.
- 로그 파일이 스크립트와 동일한 디렉터리에 생성되도록
/home/labex/project/resource_usage.log와 같은 절대 경로 또는 상대 경로를 사용하세요.
실행 예시
과제를 완료한 후 /home/labex/project/system_monitor.sh를 몇 초간 실행하면 다음과 같은 내용이 담긴 resource_usage.log 파일이 생성되어야 합니다.
cat /home/labex/project/resource_usage.log
2024-12-04 14:00:01 CPU: 15% Memory: 45% Disk: 62%
2024-12-04 14:00:03 CPU: 18% Memory: 46% Disk: 62%
2024-12-04 14:00:05 CPU: 20% Memory: 47% Disk: 62%
스크립트를 안전하게 종료하려면 Ctrl+C를 눌러 인터럽트 신호를 보내면 됩니다.

요약
이번 챌린지에서는 리눅스 시스템 모니터링 스크립트에 로깅 기능을 성공적으로 추가했습니다. 이 기능을 통해 리소스 사용량을 파일에 기록함으로써 시간에 따른 리소스 소비 변화를 추적할 수 있게 되었습니다. 이 과제를 통해 Bash 스크립트에서의 파일 작업과 날짜 명령어 활용 능력을 한층 더 강화할 수 있었습니다.



