```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 # Этот скрипт поможет отслеживать пиковые нагрузки и предотвратить зависания системы. #================================================== ```