Bash / Shell

Мониторинг ресурсов сервера

Algonexys · 07.08.2026 · 👁 0

Быстрая диагностика: диск, память, топ процессов, открытые порты, уведомление при превышении порога.

Код

#!/usr/bin/env bash
set -euo pipefail

THRESHOLD=85

echo "=== Диск ==="
df -h --exclude-type=tmpfs --exclude-type=devtmpfs

echo -e "\n=== Память ==="
free -h

echo -e "\n=== Топ-10 процессов по CPU ==="
ps -eo pid,ppid,user,%cpu,%mem,etime,cmd --sort=-%cpu | head -11

echo -e "\n=== Топ-10 по памяти ==="
ps -eo pid,user,%mem,rss,cmd --sort=-%mem | head -11

echo -e "\n=== Открытые порты ==="
ss -tulpn | grep LISTEN

echo -e "\n=== Средняя нагрузка ==="
uptime

# Предупреждение о заполнении диска
df --output=pcent,target -x tmpfs -x devtmpfs | tail -n +2 | while read -r pct mount; do
    used="${pct%\%}"
    if (( used >= THRESHOLD )); then
        echo "ВНИМАНИЕ: $mount заполнен на ${used}%" >&2
    fi
done