Bash / Shell
Мониторинг ресурсов сервера
Быстрая диагностика: диск, память, топ процессов, открытые порты, уведомление при превышении порога.
Код
#!/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