VitaGuard: Bash로 만든 첫 실시간 Linux 시스템 상태 모니터
Source: Dev.to

스크립트가 하는 일
VitaGuard는 시스템 상태에 대한 지속적으로 업데이트되는 개요를 제공합니다:
리소스 사용량
- 시각적 진행 바가 포함된 CPU 사용량
- 메모리 사용량 (사용 중 vs 전체)
- 루트 파일시스템의 디스크 사용량
- 높은 사용량 임계값에 대한 자동 경고
시스템 정보
- 시스템 가동 시간 및 평균 부하
- 활성 네트워크 인터페이스
프로세스
- CPU 사용량 기준 상위 5개 프로세스
- 깔끔하고 읽기 쉬운 표 형태 출력
로그
최근 시스템 로그를 스캔하여 중요한 문제를 찾고, 다음과 같은 오류를 필터링합니다:
- 커널 문제
- 서비스 실패
- OOM(메모리 부족) 이벤트
일반적인 로그 잡음을 줄이고 최신 항목으로 출력 범위를 제한합니다.
서비스
일반적인 서비스의 상태를 확인합니다:
sshddockernginx
이 모든 작업은 자동 새로 고침 루프에서 실행되며, 종료할 때까지 5초마다 업데이트됩니다.
왜 만들었는가
저는 Linux 시스템을 지원하거나 문제를 해결할 때 실제로 확인하는 항목—CPU, 메모리, 디스크, 프로세스, 그리고 중요한 로그 항목—을 그대로 반영하는 가벼운 도구를 원했으며, 과도한 설계는 원하지 않았습니다. 목표는 다음과 같습니다:
- 원시 시스템 메트릭을 읽기 쉬운 출력으로 변환
- 시각적인 진행 바와 색상 기반 알림을 구축
- 잡음이 많은 로그를 필터링하여 유용한 신호를 드러냄
- 구조적이고 읽기 쉬우며 안전한 Bash 스크립트를 작성
- 서버에 바로 배포하고 즉시 사용할 수 있는 실용적인 도구를 만들기
도전 과제 및 해결책
- Progress bar colors 처음에 표시되지 않았습니다.
printf "%b"를 사용하여 이스케이프 코드를 작동하도록 수정했습니다. - Syslog noise:
grep -v필터를 추가하여 “workqueue” 및 “drm”과 같은 잡동사니를 제거했습니다. - Process table alignment:
awk를 사용해 고정 너비를 지정하여 모든 항목을 깔끔하게 정렬했습니다.
What I learned
top,free,df같은 명령어에서 시스템 정보(CPU, 메모리, 디스크)를 가져와awk로 정리하기.- 터미널 색상 코드를 사용해 경고를 강조하기(좋은 경우는 초록, 나쁜 경우는 빨강).
- 체크를 추가하고 빈 결과를 처리하며 코드를 읽기 쉽게 유지함으로써 쉽게 깨지지 않는 Bash 스크립트 작성하기.
다음 단계
- 구성 가능한 새로 고침 간격
- 선택적 비대화형 / 일회성 모드
- 다양한 Linux 배포판에 대한 호환성 향상
- 원격 모니터링을 위한 선택적 HTML/JS 대시보드
Source code
The full script is available on GitHub:
Repository:
VitaGuard는 가벼운 Bash 기반 시스템 상태 모니터로, Linux 시스템에서 CPU, 메모리, 디스크 사용량, 프로세스, 로그, 네트워크 인터페이스 및 서비스 상태에 대한 실시간 인사이트를 제공합니다.
🛡️ VitaGuard
터미널에서 바로 리눅스 서버의 주요 상태를 빠르게 모니터링하세요.
🛠️ 기술
- Bash 스크립팅
- 핵심 Linux 도구:
top,free,df,ps,grep,awk,tail
🚀 기능
- 실시간 업데이트 (5초마다 새로 고침)
- CPU, 메모리, 디스크에 대한 색상 구분 진행 표시줄
- 가동 시간 및 평균 부하 표시
- CPU 사용량 상위 5개 프로세스 (정돈된 표)
- syslog에서 최근 중요한 오류 (필터링, 최대 3줄)
- ASCII 아트 헤더
🔍 작동 방식
스크립트는 무한 루프에서 실행됩니다:
- 터미널 화면을 지웁니다.
- 표준 Linux 유틸리티를 사용해 시스템 메트릭을 수집합니다.
- 색상으로 구분된 진행 막대와 경고를 표시합니다.
- 프로세스, 로그 및 서비스 정보를 보여줍니다.
- 설정된 간격(기본 5초)만큼 대기한 후 반복합니다.
