고급 메모리 정보 탐색
Linux 는 기본 free 명령어가 표시하는 것 이상의 자세한 메모리 정보를 제공합니다. 이 단계에서는 추가 메모리 정보 소스를 탐색하고 포괄적인 메모리 요약을 생성합니다.
/proc/meminfo 탐색
/proc/meminfo 파일에는 시스템에 대한 자세한 메모리 정보가 포함되어 있습니다. 이를 살펴보겠습니다.
head -20 /proc/meminfo
이 파일에는 다음과 같은 수십 개의 메모리 관련 값이 포함되어 있습니다.
MemTotal: 총 사용 가능한 RAM
MemFree: 사용 가능한 메모리
MemAvailable: 사용 가능한 메모리
Buffers: 커널 버퍼에서 사용되는 메모리
Cached: 파일 캐싱에 사용되는 메모리
SwapTotal: 총 스왑 공간
SwapFree: 사용 가능한 스왑 공간
이 파일에서 몇 가지 주요 정보를 추출해 보겠습니다.
grep -E "MemTotal|MemFree|MemAvailable|Buffers|Cached|SwapTotal|SwapFree" /proc/meminfo > ~/project/memory_data/meminfo_excerpt.txt
추출된 정보를 봅니다.
cat ~/project/memory_data/meminfo_excerpt.txt
포괄적인 메모리 요약 생성
이제 포괄적인 메모리 요약 보고서를 생성하는 스크립트를 만들어 보겠습니다. 새 스크립트 파일을 만듭니다.
nano ~/project/memory_data/create_summary.sh
다음 내용을 추가합니다.
#!/bin/bash
## Set output file with timestamp
output_file=~/project/memory_data/memory_summary_$(date +%Y%m%d_%H%M%S).txt
## Create header
echo "LINUX MEMORY SUMMARY REPORT" > $output_file
echo "===========================" >> $output_file
echo "Date: $(date)" >> $output_file
echo "" >> $output_file
## Basic memory statistics
echo "BASIC MEMORY STATISTICS:" >> $output_file
free -h >> $output_file
echo "" >> $output_file
## Detailed memory information
echo "DETAILED MEMORY INFORMATION:" >> $output_file
echo "Total RAM: $(grep MemTotal /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Free RAM: $(grep MemFree /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Available RAM: $(grep MemAvailable /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Buffer memory: $(grep Buffers /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Cache memory: $(grep "^Cached:" /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "" >> $output_file
## Swap information
echo "SWAP INFORMATION:" >> $output_file
echo "Total Swap: $(grep SwapTotal /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Free Swap: $(grep SwapFree /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "" >> $output_file
## Memory usage percentage calculation
total_mem=$(grep MemTotal /proc/meminfo | awk '{print $2}')
used_mem=$(grep MemTotal /proc/meminfo | awk '{print $2}')
used_mem=$((used_mem - $(grep MemFree /proc/meminfo | awk '{print $2}')))
used_mem=$((used_mem - $(grep Buffers /proc/meminfo | awk '{print $2}')))
used_mem=$((used_mem - $(grep "^Cached:" /proc/meminfo | awk '{print $2}')))
mem_percentage=$((used_mem * 100 / total_mem))
echo "MEMORY USAGE SUMMARY:" >> $output_file
echo "Memory usage percentage: ${mem_percentage}%" >> $output_file
echo "" >> $output_file
echo "Memory summary report generated at $output_file"
Ctrl+O를 누른 다음 Enter를 눌러 파일을 저장하고, Ctrl+X로 종료합니다.
스크립트를 실행 가능하게 만듭니다.
chmod +x ~/project/memory_data/create_summary.sh
스크립트를 실행하여 요약 보고서를 생성합니다.
~/project/memory_data/create_summary.sh
스크립트가 완료된 후 생성된 요약 보고서를 봅니다.
cat ~/project/memory_data/memory_summary_*
이 포괄적인 보고서는 여러 소스의 데이터를 결합하여 시스템의 메모리 상태에 대한 자세한 보기를 제공합니다.
간단한 메모리 상태 명령어 생성
마지막으로, 현재 메모리 상태를 간결한 형식으로 표시하는 간단한 한 줄 명령어를 만들어 보겠습니다.
echo "Memory status: $(free -h | grep Mem | awk '{print "Total:"$2, "Used:"$3, "Free:"$4, "Available:"$7}')" > ~/project/memory_data/memory_status.txt
메모리 상태를 봅니다.
cat ~/project/memory_data/memory_status.txt
이 명령어는 free 명령어 출력에서 가장 중요한 정보를 추출하여 간결한 형식으로 표시합니다.