[번외] 서버 상태 보기

리눅스에서 서버의 자원 상태(CPU, 메모리, 디스크, 네트워크 등)를 주기적으로 점검하는 것은 시스템 안정성을 유지하는 데 필수적이다.

실시간 명령어 실행: watch

  • watch 명령어는 특정 명령어를 주기적으로 반복 실행하여 그 결과를 실시간으로 갱신한다.
watch -n 5 df -h
  • 위 예시는 df -h 명령어를 5초마다 실행하여 출력 결과를 갱신한다.

서버 상태 확인에 유용한 명령어 정리

명령어 설명  
top 실시간 프로세스 및 자원 사용량 모니터링  
htop top의 대화형 대체 도구 (패키지 설치 필요)  
df -h 디스크 사용량 확인 (사람이 읽기 쉬운 단위)  
du -h --max-depth=1 현재 디렉터리 기준 하위 디렉터리별 디스크 사용량  
free -m 메모리 사용량 확인 (MB 단위)  
vmstat 1 가상 메모리, 프로세스, 시스템, CPU 사용 현황 출력 (1초 간격)  
netstat -tuln 현재 열려 있는 TCP/UDP 포트 확인  
ss -tuln netstat보다 빠른 대체 도구  
ping example.com 네트워크 연결 상태 확인  
traceroute example.com 네트워크 경로 및 지연 시간 추적  
uptime 시스템 가동 시간, 로그인 사용자 수, 평균 부하 확인  
`dmesg | tail` 커널 메시지 로그 확인 (하드웨어/디바이스 문제 진단에 유용)  

종합적인 서버 상태 모니터링 스크립트

#!/bin/bash

echo "=== 시스템 성능 모니터링 시작 ==="

# CPU 및 메모리 사용량
echo "=== CPU 및 메모리 사용량 ==="
top -b -n 1 | head -n 10

# 디스크 사용량
echo "=== 디스크 사용량 ==="
df -h

# 메모리 상태
echo "=== 메모리 상태 ==="
free -m

# 네트워크 상태
echo "=== 네트워크 상태 ==="
sudo ss -tuln

# 시스템 가동 시간
echo "=== 시스템 가동 시간 ==="
uptime

# 커널 메시지 확인
echo "=== 커널 메시지 ==="
sudo dmesg | tail -n 10

echo "=== 시스템 성능 모니터링 완료 ==="

스크립트를 주기적으로 실행하기

  • watch 명령어를 사용하여 위 스크립트를 주기적으로 실행할 수 있다.
sudo watch -n 10 ./monitoring_script.sh

요약

  • top, htop, df, free, ss, uptime 등은 서버 상태 점검에 유용한 기본 도구이다.
  • watch를 활용하면 이러한 명령어를 실시간으로 자동 갱신할 수 있다.
  • 서버의 안정성을 유지하려면 주기적인 모니터링이 필요하다.