[번외] 서버 상태 보기
리눅스에서 서버의 자원 상태(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
를 활용하면 이러한 명령어를 실시간으로 자동 갱신할 수 있다.- 서버의 안정성을 유지하려면 주기적인 모니터링이 필요하다.