linux

133 commands

133 shown

Найти большие файлы Найти файлы больше 100MB отсортированные по размеру find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -rh | head -20 #linux Использование диска по директориям 15 самых больших директорий верхнего уровня du -sh /* 2>/dev/null | sort -rh | head -15 #linux Открытые порты TCP listening порты с PID и именем процесса (современный netstat) ss -tlnp #linux#network Найти процесс по порту Какой процесс слушает конкретный порт ss -tlnp | grep :<port> #linux#network#debug CPU по процессам 15 процессов с наибольшим потреблением CPU ps aux --sort=-%cpu | head -15 #linux#monitoring Память по процессам 15 процессов с наибольшим потреблением памяти ps aux --sort=-%mem | head -15 #linux#monitoring Логи systemd сервиса Стриминг логов systemd unit за последние 10 минут journalctl -u <service> -f --since '10 minutes ago' #linux#logs Статус systemd сервиса Статус сервиса, последние строки логов, активные таймеры systemctl status <service> --no-pager -l #linux Захват трафика на интерфейсе Захватить конкретный трафик в pcap файл tcpdump -i eth0 -nn host <ip> and port 80 -w /tmp/capture.pcap #linux#network#debug Использование inode Использование inode по файловым системам; может вызвать 'no space' без полного диска df -i | sort -k5 -rn #linux Открытые файлы процесса Все файлы, сокеты, соединения открытые процессом lsof -p <pid> #linux#debug Watch вывода команды Повторять команду каждые 2 секунды с подсветкой изменений watch -n 2 'kubectl get pods -n <ns>' #linux Запустить в фоне Запустить скрипт без привязки к терминалу; вывод в файл nohup ./script.sh > /tmp/out.log 2>&1 & #linux SSH туннель Пробросить локальный порт 8080 на внутренний хост через bastion ssh -L 8080:internal-service:80 user@bastion -N -f #linux#network Распаковать tar.gz Распаковать gz-архив tar в конкретную директорию tar -xzf archive.tar.gz -C /target/dir/ #linux Сгенерировать случайный пароль Криптографически стойкий случайный пароль 32 байта openssl rand -base64 32 #linux#security Детали TLS сертификата Дата истечения и subject сертификата живого TLS endpoint openssl s_client -connect example.com:443 </dev/null 2>/dev/null | openssl x509 -noout -dates -subject #linux#network#security Awk — сумма колонки Сумма 3-й колонки файла с разделением пробелами awk '{sum += $3} END {print sum}' file.txt #linux Sed — замена в файле Глобальная замена строки в файле на месте sed -i 's/old-string/new-string/g' file.txt #linux Сортировка и дедупликация Подсчёт и ранжирование дублирующихся строк в файле sort file.txt | uniq -c | sort -rn | head -20 #linux Список блочных устройств Дерево дисков, разделов, loop-устройств с типом ФС lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,UUID #linux#disk#filesystem UUID блочных устройств UUID, метка и тип ФС для всех блочных устройств blkid #linux#disk#filesystem Примонтировать раздел Примонтировать ext4 раздел в /mnt/data mount -t ext4 /dev/sdb1 /mnt/data #linux#filesystem Все точки монтирования Все реальные смонтированные ФС в виде дерева findmnt --real #linux#filesystem Перемонтировать ФС на запись Перемонтировать корневую ФС в режиме чтения-записи (напр. после rescue) mount -o remount,rw / #linux#filesystem Проверка целостности ФС Проверка ФС без изменений; для реального исправления сначала отмонтировать fsck -n /dev/sdb1 #linux#filesystem#debug Создать ext4 раздел Форматировать раздел в ext4 с меткой mkfs.ext4 -L datalabel /dev/sdb1 #linux#filesystem#disk Расширить ext4 раздел Расширить ext4 до размера раздела (после изменения раздела) resize2fs /dev/sdb1 #linux#filesystem#disk Информация о ФС Метаданные ext2/3/4: размер блока, счётчик монтирований, время tune2fs -l /dev/sda1 | grep -E 'Block (count|size)|Mount count|Last mount' #linux#filesystem Использование диска по глубине Использование диска /var на 2 уровня вглубь du -h --max-depth=2 /var | sort -rh | head -20 #linux#disk Свободное место на дисках Место только на реальных ФС, без tmpfs/overlay df -hT --type=ext4 --type=xfs --type=btrfs #linux#disk Редактор разделов Интерактивный редактор таблицы разделов MBR/GPT fdisk /dev/sdb #linux#disk#partitions Разметка GPT через parted Создать один GPT раздел на весь диск parted /dev/sdb -- mklabel gpt mkpart primary ext4 1MiB 100% #linux#disk#partitions Физические тома LVM Физические тома LVM с использованием места pvs && pvdisplay #linux#lvm#disk Группы томов LVM Группы томов LVM со свободными PE vgs && vgdisplay #linux#lvm#disk Логические тома LVM Список логических томов с путями к устройствам lvs -o +devices #linux#lvm#disk Расширить LV и ФС Расширить LVM логический том на 10G и увеличить ext4 ФС онлайн lvextend -L +10G /dev/vg0/lv_data && resize2fs /dev/vg0/lv_data #linux#lvm#disk#filesystem Создать swap-файл Выделить 2G swap-файл, права, форматировать и включить fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile #linux#disk#memory Использование swap Активные swap-пространства и общая статистика памяти swapon --show && free -h #linux#memory Все IP-адреса Краткий список всех интерфейсов с IP ip -br a #linux#network Таблица маршрутизации Все правила маршрутизации включая policy routes ip route show table all #linux#network Добавить статический маршрут Добавить статический маршрут (до перезагрузки) ip route add 10.0.0.0/8 via 192.168.1.1 dev eth0 #linux#network ARP/NDP таблица Кэш соседей (ARP/NDP) с состоянием доступности ip neigh show #linux#network Статистика сетевого интерфейса TX/RX байты, ошибки, дропы интерфейса ip -s link show eth0 #linux#network#monitoring DNS-запрос Запрос A-записей через конкретный DNS-сервер dig +short A example.com @8.8.8.8 #linux#network#dns Обратный DNS-запрос PTR-запись для IP-адреса dig +short -x 8.8.8.8 #linux#network#dns Трассировка делегирования DNS Полная цепочка разрешения DNS от корневых серверов dig +trace example.com #linux#network#dns Установленные TCP-соединения Все установленные TCP соединения с инфо о процессе ss -tnp state established #linux#network Подсчёт соединений по состояниям Количество соединений в каждом состоянии TCP ss -tan | awk 'NR>1{print $1}' | sort | uniq -c | sort -rn #linux#network#monitoring Трассировка с MTU discovery Traceroute + ping в TCP-режиме для обхода блокировки ICMP mtr --report --tcp --port 443 example.com #linux#network#debug Тест MTU пути Пинг с DF-битом 1500 байт для обнаружения MTU проблем ping -M do -s 1472 -c 3 8.8.8.8 #linux#network#debug Правила iptables Все правила filter table со счётчиками пакетов и номерами строк iptables -L -n -v --line-numbers #linux#network#security Правила nftables Полный ruleset nftables в читаемом виде nft list ruleset #linux#network#security Пропускная способность сети Измерить TCP-пропускную способность: 4 потока, 10 секунд iperf3 -c <server_ip> -t 10 -P 4 #linux#network#monitoring Мониторинг сетевого трафика Трафик в реальном времени по соединениям на интерфейсе iftop -i eth0 -n #linux#network#monitoring Версия ядра Версия ядра и полная информация о системе uname -r && uname -a #linux#kernel Кольцевой буфер ядра Последние 50 ошибок/предупреждений ядра с читаемыми временными метками dmesg -T --level=err,warn | tail -50 #linux#kernel#debug Загруженные модули ядра Все загруженные в данный момент модули ядра lsmod | sort #linux#kernel Загрузить модуль ядра Загрузить модуль с зависимостями и проверить modprobe <module> && lsmod | grep <module> #linux#kernel Информация о модуле Параметры, версия, лицензия и зависимости модуля modinfo <module> #linux#kernel Параметры ядра (sysctl) Список всех параметров ядра; фильтрация по имени sysctl -a | grep vm.swappiness #linux#kernel Применить параметр sysctl Включить IP-форвардинг немедленно (также добавьте в /etc/sysctl.d/) sysctl -w net.ipv4.ip_forward=1 #linux#kernel#network Параметры загрузки ядра Параметры, переданные ядру при загрузке cat /proc/cmdline #linux#kernel Открытые дескрипторы системно Выделенные FD, свободные FD и системный максимум cat /proc/sys/fs/file-nr #linux#kernel#monitoring IO-ожидание и пропускная способность Расширенная статистика дисков каждые 2с, 5 итераций; смотреть %iowait, await iostat -xz 2 5 #linux#disk#monitoring Статистика виртуальной памяти CPU, память, swap, IO статистика системы в секунду vmstat 1 5 #linux#memory#monitoring IO по процессам Накопленное дисковое чтение/запись по процессам (нужен root) iotop -ao #linux#disk#monitoring Отчёт активности системы CPU, память, диск через sysstat (5 проб, 1с интервал) sar -u -r -d 1 5 #linux#monitoring Системные вызовы процесса Перехватить сетевые и файловые системные вызовы процесса strace -f -e trace=network,file -p <pid> #linux#debug#monitoring Счётчики производительности CPU Аппаратные счётчики CPU за 5 секунд perf stat -e cycles,instructions,cache-misses -- sleep 5 #linux#monitoring#performance Информация о CPU Модель CPU, топология сокеты/ядра/потоки, частота lscpu | grep -E 'Model|Socket|Core|Thread|MHz' #linux#hardware Слоты памяти (DIMM) Физические слоты DIMM: размер, скорость, тип (нужен root) dmidecode -t memory | grep -E 'Size|Speed|Locator|Type:' #linux#hardware PCI-устройства Сетевые карты, GPU, NVMe контроллеры с информацией о драйвере lspci -v | grep -A5 'VGA\|Ethernet\|NVMe' #linux#hardware Сделать файл неизменяемым Запретить изменение файла любым пользователем включая root chattr +i /etc/resolv.conf && lsattr /etc/resolv.conf #linux#filesystem#security Расширенные атрибуты файла Расширенные атрибуты файлов в /etc/ (не по умолчанию) lsattr -R /etc/ 2>/dev/null | grep -v '^\-\-\-\-' #linux#filesystem ACL: просмотр прав POSIX ACL: владелец, группа и дополнительные права пользователей getfacl /srv/shared #linux#filesystem#security ACL: выдать права пользователю Выдать alice полный доступ без изменения групп-владельца setfacl -m u:alice:rwx /srv/shared #linux#filesystem#security Найти SUID/SGID бинарники Найти setuid/setgid исполняемые файлы (аудит безопасности) find / -perm /6000 -type f -ls 2>/dev/null #linux#security Найти процесс по имени Список PID и полных командных строк по имени процесса pgrep -la nginx #linux Убить дерево процессов Отправить SIGTERM всей группе процессов kill -TERM -$(pgrep -f 'my-app') #linux Изменить приоритет процесса Понизить приоритет (nice +10) работающего процесса renice -n 10 -p <pid> #linux#performance Ограничить ресурсы процесса Запустить команду в временном scope systemd с лимитами ресурсов systemd-run --scope -p MemoryMax=512M -p CPUQuota=50% -- ./heavy.sh #linux#performance#cgroups Логи journald за период Логи nginx между двумя временными метками journalctl --since '2024-01-15 10:00' --until '2024-01-15 10:30' -u nginx #linux#logs Экспорт журнала в JSON Структурированный экспорт логов для отправки в агрегаторы journalctl -u <service> -o json | jq '{ts: .REALTIME_TIMESTAMP, msg: .MESSAGE}' #linux#logs Статус синхронизации NTP Состояние синхронизации, смещение и источник NTP timedatectl status && chronyc tracking #linux#network Системные таймеры systemd Все таймеры с временем последнего и следующего срабатывания systemctl list-timers --all --no-pager #linux Скопировать SSH-ключ Добавить публичный ключ в authorized_keys на удалённом хосте ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host #linux#ssh Rsync с прогрессом Синхронизировать директорию на удалённый хост с удалением лишних файлов rsync -avz --progress --delete src/ user@host:/dest/ #linux#filesystem Безопасное затирание диска Затереть диск нулями с проверкой (для NVMe используйте hdparm ATA secure erase) shred -vzn 1 /dev/sdb #linux#disk#security SMART-здоровье диска Общее состояние SMART и ключевые показатели отказа smartctl -a /dev/sda | grep -E 'SMART overall|Reallocated|Pending|Uncorrectable' #linux#disk#monitoring Тест последовательного IO диска Запись 1GB с принудительной синхронизацией для измерения скорости dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 conv=fdatasync #linux#disk#performance Неймспейсы процессов Список Linux-неймспейсов для сети, PID и монтирования lsns -t net,pid,mnt #linux#kernel#containers Иерархия cgroups Дерево cgroup-иерархии systemd с назначенными ресурсами systemd-cgls #linux#kernel#cgroups Подсчёт строк во всех логах Найти самые большие лог-файлы по числу строк find /var/log -name '*.log' -exec wc -l {} + | sort -rn | head -20 #linux#logs Следить за несколькими лог-файлами Стриминг нескольких лог-файлов вперемешку в одном терминале tail -f /var/log/syslog /var/log/auth.log #linux#logs Поиск в сжатых логах grep внутри .gz файлов без распаковки zgrep -i 'error' /var/log/syslog.*.gz #linux#logs Принудительная ротация логов Принудительная ротация логов вне расписания logrotate -f /etc/logrotate.conf #linux#logs Все cron-задачи в системе Вывести активные cron-задачи для каждого пользователя for u in $(cut -f1 -d: /etc/passwd); do crontab -l -u $u 2>/dev/null | grep -v '^#' | sed "s|^|$u: |"; done #linux Проверить cron-выражение Разобрать cron-выражение и показать следующие 5 запусков systemd-analyze calendar '*/5 * * * *' #linux Перенаправить stderr в файл Разделить stdout и stderr в разные файлы command > /tmp/out.log 2> /tmp/err.log #linux Захватить оба потока Вывод stdout+stderr в файл и экран одновременно command 2>&1 | tee /tmp/all.log #linux Замена строки в файлах рекурсивно Найти файлы с текстом и заменить его на месте grep -rl 'old_string' /etc/ | xargs sed -i 's/old_string/new_string/g' #linux Вывести столбцы через awk Напечатать 1-й и 3-й столбцы из файла awk '{print $1, $3}' /etc/passwd #linux Сумма столбца через awk Просуммировать значения второго столбца в файле awk '{sum += $2} END {print sum}' file.txt #linux Удалить строки по шаблону Удалить все строки-комментарии начинающиеся с # sed -i '/^#/d' config.conf #linux Многострочная замена через sed Напечатать блок текста между метками START и END sed -n '/START/,/END/p' file.txt #linux Уникальные отсортированные значения Подсчитать вхождения каждой уникальной строки sort file.txt | uniq -c | sort -rn #linux Кто залогинен в системе Активные сессии пользователей и что они выполняют who -H && w #linux#security Последние входы в систему Последние 20 записей о входах с IP и длительностью last -n 20 | head -25 #linux#security Неудачные попытки входа Топ IP с неудачными попытками входа по SSH за 24 часа journalctl -u ssh --since '24h ago' | grep 'Failed password' | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -10 #linux#security Проверить sudo-доступ Список sudo-правил для конкретного пользователя sudo -l -U <username> #linux#security Добавить пользователя в группу Добавить пользователя в несколько групп без удаления текущих usermod -aG docker,sudo alice #linux Карта памяти процесса Суммарный виртуальный размер процесса из smaps cat /proc/<pid>/smaps | awk '/^Size/{sum+=$2} END{print sum/1024" MB"}' #linux#memory#debug Статус огромных страниц памяти Проверить THP и hugepages — использование и конфигурацию grep -E 'HugePages|AnonHugePages|Transparent' /proc/meminfo #linux#memory#kernel Отключить THP Отключить THP в рантайме (лечит задержки Redis, MongoDB) echo never > /sys/kernel/mm/transparent_hugepage/enabled #linux#memory#kernel NUMA-топология NUMA-узлы, привязка CPU и распределение памяти numactl --hardware #linux#hardware#performance Тюнинг TCP: backlog Увеличить listen backlog для высоконагруженных сервисов sysctl -w net.core.somaxconn=65535 net.ipv4.tcp_max_syn_backlog=65535 #linux#network#kernel Тюнинг TCP: включить BBR Включить контроль перегрузки BBR от Google для лучшей пропускной способности sysctl -w net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr #linux#network#kernel#performance Открытые UDP-сокеты Все UDP listening-сокеты с информацией о процессах ss -ulnp #linux#network Привязать процесс к ядрам Привязать процесс к определённым ядрам CPU taskset -cp 0,1 <pid> #linux#performance Аппаратные прерывания Счётчики прерываний по CPU, обновление каждую секунду watch -n1 'cat /proc/interrupts | head -30' #linux#hardware#monitoring Лимиты процесса Жёсткие и мягкие лимиты ресурсов для работающего процесса cat /proc/<pid>/limits #linux#debug Увеличить лимит файловых дескрипторов Установить высокий лимит FD для сессии и сохранить постоянно ulimit -n 1048576 && echo '* soft nofile 1048576 * hard nofile 1048576' >> /etc/security/limits.conf #linux#kernel#performance Показать использование inode Показать использование inode на файловых системах (важно при многих мелких файлах) df -i #linux#filesystem#inode#df Найти большие файлы Найти файлы больше 100МБ на всей файловой системе find / -type f -size +100M 2>/dev/null | sort #linux#filesystem#find#disk Показать открытые файловые дескрипторы Подсчитать открытые файловые дескрипторы для запущенного процесса cat /proc/$(pgrep myapp)/fd | wc -l #linux#process#fd#proc Проверить статус SELinux Показать текущий режим SELinux getenforce #linux#security#selinux Список системных cron-задач Показать все расположения системных и пользовательских cron-задач ls /etc/cron.* /var/spool/cron/crontabs/ #linux#cron#scheduling Показать переменные окружения Показать все переменные окружения в алфавитном порядке printenv | sort #linux#env#shell Мониторинг дискового I/O Показывать расширённую статистику дискового I/O каждую секунду iostat -xz 1 #linux#disk#io#iostat Показать дерево процессов Показать иерархию процессов с PID pstree -p #linux#process#pstree Тюнинг TCP — backlog Увеличить максимальный backlog для сокетов sysctl -w net.core.somaxconn=65535 #linux#network#sysctl#tcp#tuning Информация о процессоре Показать архитектуру CPU и количество ядер lscpu #linux#cpu#hardware#lscpu
no commands match