24 lines
636 B
Bash
24 lines
636 B
Bash
#!/bin/bash
|
|
LOG_DIR="/data/logs"
|
|
LOG_FILE="$LOG_DIR/memory-history.log"
|
|
mkdir -p "$LOG_DIR"
|
|
|
|
while true; do
|
|
# Rotate if over 10MB
|
|
if [ -f "$LOG_FILE" ]; then
|
|
SIZE=$(wc -c < "$LOG_FILE" 2>/dev/null || echo 0)
|
|
if [ "$SIZE" -gt 10485760 ]; then
|
|
mv "$LOG_FILE" "$LOG_FILE.old"
|
|
fi
|
|
fi
|
|
|
|
echo "========== $(date +%Y-%m-%d\ %H:%M:%S) ==========" >> "$LOG_FILE"
|
|
echo "--- MEMORY ---" >> "$LOG_FILE"
|
|
free -m >> "$LOG_FILE"
|
|
echo "--- TOP MEMORY PROCESSES ---" >> "$LOG_FILE"
|
|
ps -eo pid,rss,comm --sort=-rss | head -12 >> "$LOG_FILE"
|
|
echo "" >> "$LOG_FILE"
|
|
|
|
sleep 600
|
|
done
|