From e5abc1fe99340b979b18864d978179f71fe8f5c5 Mon Sep 17 00:00:00 2001 From: vlapa Date: Sat, 13 Jun 2026 20:33:26 +0300 Subject: First --- ...202\320\276\321\200\320\270\320\275\320\263.md" | 280 +++++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 "LINUX/SERVER - \320\274\320\276\320\275\320\270\321\202\320\276\321\200\320\270\320\275\320\263.md" (limited to 'LINUX/SERVER - мониторинг.md') diff --git "a/LINUX/SERVER - \320\274\320\276\320\275\320\270\321\202\320\276\321\200\320\270\320\275\320\263.md" "b/LINUX/SERVER - \320\274\320\276\320\275\320\270\321\202\320\276\321\200\320\270\320\275\320\263.md" new file mode 100644 index 0000000..6875dd6 --- /dev/null +++ "b/LINUX/SERVER - \320\274\320\276\320\275\320\270\321\202\320\276\321\200\320\270\320\275\320\263.md" @@ -0,0 +1,280 @@ +```sh +# Топ процессов по загрузке CPU +ps -eo pid,comm,%cpu --sort=-%cpu | head + +# Запуск интерактивного мониторинга +top +htop  # Более удобный интерфейс (если установлен) + +# Убить процесс с высокой нагрузкой по PID +kill -9 + +# Ограничить нагрузку от процесса (через nice) +nice -n 10 командa + +🟢 ps + sort быстро выявляют топовые процессы +🟢 top и htop позволяют следить в реальном времени +🟢 nice — задаёт приоритет и снижает нагрузку + +#================================================= +# Просмотр истории команд пользователя   +history + +# Узнаем кто зарегистрирован в системе и сколько времени в ней находится: +who + +# список всех пользователей, которые сейчас зарегистрированы в системе: +users + +# Подробная информация о сессиях пользователей   +w + +# когда и сколько времени определенный пользователь находился в системе: +last user_name + +# выдаст информацию о последних пяти входах: +last -n 5 user_name + +# вывод на экран перечня всех пользователей с датами их последнего подключения к системе: +lastlog +# удобно контролировать системные записи. У них дата последнего входа должна быть = Never logged in =, потому что под ними нельзя войти в систему (в качестве командной оболочки установлены /bin/false, /dev/null, /sbin/nologin и др.). Если вы заметили, что кто-либо проник в систему через одну из этих учетных записей, то это значит, что хакер использует ее, изменив настройки. Простая замена командной оболочки в файле /etc/passwd может открыть хакеру потайную дверь, и администратор не заметит этой трансформации. Но после выполнения команды lastlog все неявное становится явным.  + +# Обращайте внимание на тип подключения и адрес. Если что-то вызывает подозрение, то можно выявить атаку на этапе ее созревания. + +# Просмотр логов SSH-подключений   +sudo cat /var/log/auth.log | grep "ssh" + +# определить, какие файлы и какими пользователями открыты в данный момент: +lsof + +# Файлы, открытые определённым пользователем +lsof -u username + +# Определить, кто использует файл +lsof /path/to/file + +# Какие файлы открыты на определённом порту +sudo lsof -i :80 + +# Удалённые, но занятые файлы +lsof | grep deleted + +# узнать, какие процессы используют интернет прямо сейчас? + +lsof -i -P -n + +# Расшифровка: +# - lsof — список открытых файлов (в Linux всё — файл) +# -i — показывает сетевые соединения +# -P — отображает порты в числовом виде (без разрешения имён) +# -n — не резолвит имена хостов (быстрее) + +# Это отличный способ отследить: какие приложения слушают порты, кто подключен к твоему серверу, утечки сетевой активности. Полезно при аудитах, отладке и настройке брандмауэров. + + +# запустить программу на выполнение в фоновом режиме,программа запускается на выполнение, но не блокирует консоль. Да, вы видите вывод на экране, но в любой момент может забрать консоль себе, нажав Enter. Вы можете закрывать консоль, и стартующая программа не прервет свою работу. +start-olap-server.sh & + +# список программ работающих в фоновом режиме +jobs +# Число, которое вы видите в квадратных скобках – это номер выполняемой задачи. В фон можно отправить команду нажатием Ctrl+Z. В этом случае команда уходит в фон, но перестает выполняться. + +# Псевдонимы +alias ll="ls -l" + +# Перенаправление ввода/вывода +ls > outfile.txt +# В результате выполнения этой команды, результат (т.е. содержимое каталога) не будет выведено на экран, а будет сохранено в файл.  + +# Если отобразить содержимое файла:  +cat outfile.txt  +# То вы увидите то, что должно было быть на экране еще после выполнения той команды.  + +# получать параметры из файла. Например, можно выполнить команду: +cat < infile.txt  +# Команде cat в качестве параметров будут передано содержимое infile.txt. + +# Pipe +lastlog | sort + +# Посмотреть общее время загрузки системы +systemd-analyze + +# Показать список сервисов и их время загрузки +systemd-analyze blame + +# Проверить, какие службы запускаются при старте +systemctl list-unit-files --state=enabled + +# Отключить ненужный сервис +sudo systemctl disable имя_сервиса + +# Установить задержку старта для тяжёлого сервиса +sudo systemctl edit имя_сервиса +# В открывшемся файле добавить: +# [Service] +# ExecStartPre=/bin/sleep 30 + +🟢 systemd-analyze показывает время загрузки системы +🟢 systemctl позволяет отключать или откладывать запуск лишних служб +🟢 Оптимизация автозагрузки ускоряет старт системы + +# Регулярная проверка и настройка автозагрузки особенно важна для серверов и рабочих станций с ограниченными ресурсами. + +#================================================== +# информация о процессоре: +less /proc/cpuinfo +lscpu +lshw +nproc +sudo dmidecode -t 4 + + +I #================================================== +# === Изменение имени сервера ===: +hostnamectl set-hostname hostname +# перезагрузка не потребуется — новое имя начнет использоваться сразу ??? +# Если, по каким-либо причинам, новое имя не начнет использоваться, вводим: +systemctl restart systemd-hostnamed +# Подробнее, статус можно посмотреть командой: +hostnamectl status +# Также, можно задать дополнительное для описания имя (прелестное): +hostnamectl set-hostname "Description Name" --pretty + +#================================================== +# === Диски ===: +df -h +du -h +df -i + +lsblk +smartctl -a /dev/sda +smartctl -a /dev/nvme1n1 +cat /proc/mdstat + +iostat +iotop + +#================================================== +# === Процессы / память ===: +top +uptime +htop + +vmstat +free -m +cat /proc/meminfo + +ps aux +kill 123456 +systemctl status nginx +strace -p 1234567 + +#================================================== +# === Сеть ===: +# Быстрое отображение всех прослушиваемых портов +ss -tuln +# Показать процессы, связанные с портами +ss -tulnp +# Сканировать локальный хост с помощью nmap +nmap -sT -p- 127.0.0.1 +# Сканировать удалённый сервер на стандартные порты +nmap example.com +🟢 ss — встроенный инструмент, заменяющий netstat +🟢 nmap — мощный сканер безопасности и сетевых портов +🟢 Позволяет быстро увидеть, какие порты открыты и кем используются. + +ip a +ifconfig +netstat -rn +ip r +ping 8.8.8.8 +traceroute 8.8.8.8 +mtr 8.8.8.8 +dig vlapa.ru +dig @8.8.8.8 vlapa.ru +dig -t mx vlapa.ru +curl -Lv vlapa.ru +curl -v telnet://127.0.0.1:22 +curl --unix-socket /var/run/docker.sock http:/images/json +tcpdump -i any port 9100 -nn + +curl ifconfig.me + +#================================================== +# === Логи ===: + +cd /var/log +ls -lah +tail -f -n50 /var/log/syslog +ls -lah /var/log/auth.log +ls -lah /var/log/kern.log +dmesq -T +journalctl -xeu nginx + +#================================================== +# === Температура ===: +sudo apt install lm-sensors +sudo sensors-detect + +watch -n 1 sensors +watch -d -n 1 sensors + +#================================================== +# === Стресс тест ===: +sudo apt-get install stress-ng +# CPU: +stress-ng --cpu 32 --sequential 8 --timeout 60s --metrics-brief +#  Memory: +stress-ng --class memory --sequential 8 --timeout 60s --metrics-brief +# Disk IO: +stress-ng --class io --sequential 8 --timeout 60s --metrics-brief +# File System: +stress-ng --class filesystem --sequential 8 --timeout 60s --metrics-brief +# All: +# Если необходимо провести комплексное стресс-тестирование, можно задействовать работу нескольких основных подсистем вместе одной командой: + +stress-ng --cpu 4 --io 4 --vm 1 --vm-bytes 1G --timeout 60s --metrics-brief + +# Эта команда запустит тест для CPU в 4 потока, тест виртуальной памяти с размещением в ней одного гигабайта данных, а также 4 потока для тестирования операций ввода/вывода. + +# Что бы запустить тестирование всего «железа», используется команда: +stress-ng --sequential 0 --timeout 60s --metrics-brief + +# Эта команда запустит все тесты. После выполнения результат будет выведен в консоль. Во время выполнения команды сервер не нагружать другой работой. + +#================================================== +# Автоматическое уведомление при высокой загрузке CPU + +# Этот скрипт следит за загрузкой процессора и отправляет уведомление, если нагрузка превышает критическое значение. Полезен для серверов и рабочих станций, чтобы избежать перегрева и зависаний. + +#!/bin/bash +# Пороговое значение загрузки CPU в процентах +THRESHOLD=80 +# Лог-файл +LOG_FILE="$HOME/cpu_usage.log" +# Получаем среднюю загрузку CPU +CPU_LOAD=$(awk '{print $1}' < /proc/loadavg | awk '{print $1*100}') +if (( ${CPU_LOAD%.*} >= THRESHOLD )); then +    MESSAGE="⚠️ Высокая загрузка CPU: $CPU_LOAD%" +    echo "$MESSAGE" | tee -a "$LOG_FILE" +    notify-send "CPU Alert" "$MESSAGE" +fi + +# Проверяет загрузку процессора по /proc/loadavg. +# Если нагрузка превышает установленный порог, отправляет уведомление через notify-send. +# Записывает события в лог-файл для анализа. + +# Автоматический мониторинг: +# Добавьте скрипт в crontab для проверки каждые 5 минут + +*/5 * * * * /path/to/script.sh + +# Этот скрипт поможет отслеживать пиковые нагрузки и предотвратить зависания системы. + +#================================================== + + + +``` + -- cgit v1.2.3