PyLinux - Всё о Linux, Python и IT
10.4K subscribers
1.4K photos
39 videos
2 files
1.27K links
У нас ты найдешь 👇

- библиотеки и скрипты python
- инструменты linux
- полезный софт
- важнейшие новости из мира IT

Связь с админом: @ghostifix

Купить рекламу: https://telega.in/c/pylinux0

Архив: @pylinux0_archive
Download Telegram
🔆 Управление яркостью и питанием экрана в Linux

Если вы работаете с ноутбуком или энергоэффективной рабочей станцией, управление яркостью и питанием экрана — важный способ продлить срок службы батареи и снизить нагрузку на глаза.

📌 Полезные команды

# Показать текущий уровень яркости
cat /sys/class/backlight/*/brightness

# Показать максимальный уровень яркости
cat /sys/class/backlight/*/max_brightness

# Установить яркость вручную (например, 50%)
echo 50 | sudo tee /sys/class/backlight/*/brightness

# Установить экран в спящий режим после 5 минут бездействия
xset s 300

# Полностью отключить экран после 10 минут простоя
xset dpms 0 0 600

# Немедленно выключить экран вручную
xset dpms force off


🟢 /sys/class/backlight/ позволяет напрямую управлять уровнем подсветки
🟢 xset управляет экраном и таймерами энергосбережения

🗣 Эти команды подойдут тем, кто хочет контролировать поведение экрана вручную или автоматизировать энергосбережение.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤‍🔥1
🔃 Сравнение содержимого директорий в Linux

Когда вы синхронизируете резервные копии, разворачиваете новые версии проекта или проверяете содержимое внешнего диска, важно быстро и точно сравнить две папки. Эти команды помогут выявить отличия.

📌 Полезные команды

# Сравнить два каталога побайтово (без рекурсии)
cmp -s dir1/file dir2/file && echo "✔️ Совпадают" || echo " Различия"

# Рекурсивное сравнение двух директорий
diff -qr /path/to/dir1 /path/to/dir2

# Сравнить содержимое директорий с учётом структуры и размеров
rsync -avn /dir1/ /dir2/

# Найти файлы, которых нет во второй папке
comm -23 <(ls dir1 | sort) <(ls dir2 | sort)

# Использовать fdupes для поиска одинаковых файлов в двух местах
fdupes -r /dir1 /dir2

# Визуальное сравнение в терминале (если установлен dirdiff)
sudo apt install dirdiff
dirdiff /path/to/dir1 /path/to/dir2


🟢 diff -qr показывает все отличия файлов и поддиректорий
🟢 rsync -avn безопасно симулирует копирование и выявляет отличия
🟢 comm, cmp, fdupes — удобны для более точечного анализа

🗣 Эти команды особенно полезны при проверке резервных копий, деплоях и миграциях данных между серверами или дисками.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🧹 Очистка временных и устаревших файлов в Linux

Со временем в системе накапливаются временные, кэшированные и устаревшие файлы, которые занимают дисковое пространство и могут замедлять работу. Эти команды помогут безопасно их находить и удалять.

📌 Полезные команды

# Очистить системный кэш APT
sudo apt clean && sudo apt autoclean

# Найти и удалить файлы во временных папках старше 7 дней
sudo find /tmp -type f -atime +7 -delete

# Найти лог-файлы больше 100МБ
sudo find /var/log -type f -size +100M

# Очистить старые архивы логов
sudo journalctl --vacuum-time=10d

# Использовать BleachBit в терминале (если установлен)
sudo apt install bleachbit
sudo bleachbit --clean system.cache system.tmp system.logs

# Анализировать и очищать мусор вручную с помощью ncdu
sudo apt install ncdu
sudo ncdu /


🟢 apt clean и journalctl --vacuum освобождают место, не удаляя важного
🟢 find позволяет точно задать условия для удаления старых или тяжёлых файлов
🟢 ncdu и BleachBit — удобны для ручного контроля и визуального анализа

🗣 Эти команды помогут поддерживать систему в чистоте, особенно на серверах и ноутбуках с ограниченным SSD.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🧰 Проверка доступного оборудования и информации о системе в Linux

Иногда нужно быстро узнать, какие устройства подключены, сколько ядер у процессора, какой установлен модуль памяти или какая видеокарта используется. Эти команды помогут получить максимум информации из системы без установки сторонних утилит.

📌 Полезные команды

# Общая информация о системе
uname -a
hostnamectl

# Информация о CPU
lscpu

# Информация о памяти
free -h
cat /proc/meminfo

# Информация об установленных физических модулях памяти
sudo dmidecode --type memory

# Информация о дисках и разделах
lsblk
df -h

# Информация о видеокарте
lspci | grep -i vga

# Список USB-устройств
lsusb

# Подробная информация о блоках устройств
sudo lshw -short


🟢 lscpu, lsblk, lsusb дают краткую системную информацию
🟢 dmidecode помогает узнать конфигурацию железа — особенно полезно на серверах
🟢 lshw — универсальный инструмент для диагностики оборудования

🗣 Эти команды особенно полезны при настройке новых серверов, анализе проблем с оборудованием или подготовке отчётов об инфраструктуре.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9👍4
🔧 Управление альтернативами (версии интерпретаторов, компиляторов и CLI) в Linux

Когда на системе установлено несколько версий Python, Java, gcc или других утилит, важно уметь управлять тем, какая версия используется по умолчанию. Для этого в Linux есть мощный инструмент — update-alternatives.

📌 Полезные команды

# Показать текущую настройку альтернативы для java
sudo update-alternatives --display java

# Добавить новую альтернативу (например, для Python 3.11)
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1

# Переключиться между доступными версиями python
sudo update-alternatives --config python

# Удалить альтернативу
sudo update-alternatives --remove python /usr/bin/python3.11

# Просмотреть все управляемые альтернативы
sudo update-alternatives --get-selections


🟢 update-alternatives помогает централизованно управлять симлинками для CLI-инструментов
🟢 Удобно использовать для переключения между несколькими версиями Python, Java, gcc, editor и т.д.
🟢 Позволяет задать приоритет и выбрать нужную версию без ручного редактирования /usr/bin

🗣 Эти команды особенно полезны разработчикам, системным администраторам и тем, кто тестирует приложения на разных версиях зависимостей.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3
📜 Анализ журналов systemd (journalctl) в Linux

systemd-journald ведёт централизованный журнал событий ядра и пользователей. Ниже — команды, которые помогут быстро находить нужную информацию, следить за сервисами и управлять объёмом логов.

📌 Полезные команды

# Показать журнал текущей загрузки
journalctl -b

# Вывести последние 100 строк общего журнала
journalctl -n 100

# Показать логи конкретного сервиса (например, nginx)
journalctl -u nginx.service

# Следить за событиями сервиса в реальном времени
journalctl -f -u ssh

# Фильтровать только ошибки и критические сообщения за текущую загрузку
journalctl -p err..alert -b

# Просмотреть журнал предыдущей загрузки
journalctl -b -1

# Ограничить общий размер журналов до 500 МБ
sudo journalctl --vacuum-size=500M

# Удалить записи старше 10 дней
sudo journalctl --vacuum-time=10d


🟢 journalctl -b/-1 разделяет логи по загрузкам — удобно искать сбои после перезагрузки
🟢 -u и -f позволяют дебажить сервисы в реальном времени
🟢 -p фильтрует сообщения по уровню важности, убирая «шум»
🟢 Параметры --vacuum-* помогают контролировать размер и «возраст» журналов без отключения логирования

🗣 Эти команды пригодятся при отладке сервисов systemd, поиске ошибок после обновлений, а также для регулярного обслуживания серверов.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥2
🛡 Аудит и управление правами sudo в Linux

Контроль над sudo — важный аспект безопасности. Ниже — полезные команды для анализа и настройки привилегий суперпользователя.

📌 Полезные команды

# Показать всех пользователей в группе sudo
getent group sudo

# Проверить, какие команды разрешены текущему пользователю
sudo -l

# Найти все попытки использования sudo (включая неудачные)
grep 'sudo' /var/log/auth.log

# Показать конфигурацию sudo и дополнительные правила
sudo cat /etc/sudoers
sudo ls /etc/sudoers.d/

# Проверить конфигурацию sudoers на ошибки
sudo visudo -c

# Добавить правило для пользователя: перезапуск nginx без пароля
echo 'username ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx' | sudo tee /etc/sudoers.d/nginx-restart


🟢 sudo -l помогает понять, какие команды доступны
🟢 visudo -c защищает от ошибок при редактировании
🟢 /etc/sudoers.d/ — удобное место для изолированных политик доступа

🗣 Подходит для системных администраторов, DevOps-инженеров и всех, кто управляет серверным доступом.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤‍🔥3
👀 Поиск и анализ зомби-процессов в Linux

Зомби-процессы (defunct) — это завершённые процессы, чьи родительские процессы не вызвали wait(), из-за чего они остаются в таблице процессов. Ниже — набор команд, чтобы находить и анализировать такие процессы.

📌 Полезные команды

# Найти все зомби-процессы
ps aux | awk '{ if ($8 == "Z") print $0 }'

# Упрощённый вывод PID и команды
ps -eo pid,ppid,state,cmd | grep '[Zz]'

# Посчитать количество зомби-процессов
ps aux | awk '{ if ($8 == "Z") count++ } END { print "🧟 Зомби-процессов:", count+0 }'

# Найти родительские процессы зомби
ps -eo ppid,state,cmd | awk '$2 == "Z" { print "PPID:", $1 }' | sort | uniq

# Отобразить дерево процессов с метками состояний
pstree -p -s | grep defunct

# Альтернатива через top или htop
top -b -n 1 | grep Z
htop # и фильтр F3 → defunct

# Убить родительский процесс, если это безопасно
sudo kill -HUP <PPID>


🟢 ps, awk и pstree — эффективные инструменты анализа
🟢 Убийство PPID помогает системе очистить зомби, но требует осторожности
🟢 top и htop показывают общее количество зомби-процессов в заголовке

🗣 Полезно для серверов и CI/CD-сред, где зомби могут накапливаться из-за плохо написанных демонов или обёрток над subprocess.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
🌐 Поиск и контроль открытых сетевых соединений в Linux

Мониторинг активных подключений помогает выявлять неожиданные сетевые активности, открытые порты, потенциальные утечки или вредоносную активность. Ниже — полезный набор команд для анализа сетевых соединений и сокетов.

📌 Полезные команды

# Показать все открытые TCP/UDP соединения и прослушиваемые порты
ss -tuln

# Отобразить открытые соединения с отображением PID/имён процессов
sudo ss -tunlp

# Аналог через netstat (если установлен)
sudo netstat -tulnp

# Показать количество установленных входящих соединений по портам
ss -Htan state established | awk '{print $4}' | cut -d: -f2 | sort | uniq -c | sort -nr

# Вывести статистику соединений по состояниям
ss -s

# Показать все сокеты, открытые текущим пользователем
lsof -i -u $(whoami)

# Найти процессы, открывшие порт 80
sudo lsof -i :80

# Мониторинг входящих соединений в реальном времени
watch -n 1 "ss -s"

# Узнать внешний IP-адрес системы
curl ifconfig.me


🟢 ss — современный инструмент анализа сетевых соединений
🟢 lsof показывает, какие процессы используют сеть
🟢 netstat пригодится на старых системах

🗣 Подходит для сисадминов, DevOps и тех, кто следит за безопасностью и сетевой активностью своих машин.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍5
🖱 Управление мышью и тачпадом из терминала в Linux

Иногда нужно временно отключить тачпад, изменить поведение кнопок мыши или включить "tap-to-click". Особенно полезно для ноутбуков, серверов с X11, или в случае проблем с внешними устройствами.

📌 Полезные команды

# Показать список всех устройств ввода (мыши, тачпады и др.)
xinput list

# Узнать ID устройства и его свойства
xinput list-props <ID>

# Отключить устройство (например, тачпад)
xinput disable <ID>

# Включить устройство обратно
xinput enable <ID>

# Включить "тап" по тачпаду как клик (если поддерживается)
xinput set-prop <ID> "libinput Tapping Enabled" 1

# Назначить другое поведение для кнопок мыши (например, инвертировать)
xinput set-button-map <ID> 3 2 1

# Постоянное применение параметров через ~/.xprofile или ~/.xinitrc
echo 'xinput set-prop <ID> "libinput Tapping Enabled" 1' >> ~/.xprofile


🟢 xinput работает в окружениях X11 и помогает управлять вводом
🟢 Можно отключать/включать устройства, переназначать кнопки
🟢 Особенно полезно на ноутбуках с "шалящим" тачпадом или при подключении внешней мыши

🗣 Полезный трюк для Linux-ноутбуков, стендов, хостов с X и лёгких оконных менеджеров.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
🧱 Управление правами доступа к файлам и папкам в Linux

Настройка прав доступа — важная часть безопасности и организации данных в системе. Ниже — практичные команды для контроля над доступом, пользователями и группами.

📌 Полезные команды

# Показать права доступа к файлу/папке
ls -l /path/to/file

# Изменить владельца файла
sudo chown username /path/to/file

# Изменить владельца и группу
sudo chown username:groupname /path/to/file

# Изменить права доступа (например, rw-r--r--)
chmod 644 /path/to/file

# Сделать скрипт исполняемым
chmod +x myscript.sh

# Запретить доступ к каталогу всем, кроме владельца
chmod 700 /my/secret/dir

# Установить одинаковые права на все файлы внутри каталога
chmod -R 644 /my/data

# Назначить владельца и права для новых файлов в каталоге через umask
umask 027

# Проверить текущую маску прав
umask

# Создать группу и добавить пользователя
sudo groupadd editors
sudo usermod -aG editors username

# Разрешить группе запись в каталог
sudo chown -R :editors /project
sudo chmod -R 775 /project


🟢 chmod, chown и umask — основные инструменты управления правами
🟢 Группы позволяют организовать коллективный доступ
🟢 Рекурсивные флаги -R облегчают массовую настройку
🟢 umask влияет на создаваемые файлы по умолчанию

🗣 Эти команды полезны на серверах, рабочих станциях, в рамках проектов с несколькими пользователями или при настройке прав на скрипты и конфиги.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥1
🔒 Анализ и управление открытыми файлами и дескрипторами в Linux

В Linux каждая программа использует файловые дескрипторы (FD) — не только для файлов, но и сокетов, пайпов, устройств. Переполнение лимита может привести к сбоям. Эти команды помогут понять, кто сколько ресурсов потребляет и где «течёт».

📌 Полезные команды

# Посмотреть лимиты текущего пользователя
ulimit -a

# Узнать общий лимит открытых файлов
cat /proc/sys/fs/file-max

# Сколько открытых файлов в системе сейчас
cat /proc/sys/fs/file-nr

# Найти процессы с наибольшим числом открытых файлов
sudo lsof | awk '{ print $2 }' | sort | uniq -c | sort -nr | head

# Посмотреть все открытые файлы конкретного процесса (по PID)
ls /proc/<PID>/fd

# Вывести число открытых дескрипторов по каждому процессу
for pid in $(ls /proc | grep -E '^[0-9]+$'); do
echo -n "$pid: "; ls /proc/$pid/fd 2>/dev/null | wc -l;
done | sort -nk2 | tail

# Найти утечку файловых дескрипторов (много открытых одного и того же файла)
sudo lsof | awk '{print $9}' | sort | uniq -c | sort -nr | head

# Временное увеличение лимита для сессии
ulimit -n 65535

# Постоянное изменение лимита (в /etc/security/limits.conf):
# username soft nofile 65535
# username hard nofile 65535


🟢 lsof помогает диагностировать утечки и узкие места
🟢 ulimit управляет лимитами на уровне пользователя и сессии
🟢 Команды удобно использовать при отладке высоконагруженных приложений, серверов, CI/CD-пайплайнов

🗣 Подходит для разработчиков, DevOps, админов и всех, кто работает с фоном, сокетами, серверами, БД или большими логами.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🔒 Управление и отладка заданий cron в Linux

Cron — это мощный планировщик задач. Но отладка и правильная настройка crontab требует точности. Ниже — практичные команды для контроля, диагностики и логирования.

📌 Полезные команды

# Открыть crontab текущего пользователя
crontab -e

# Просмотреть текущие задания cron
crontab -l

# Просмотреть cron-доступность пользователя
cat /etc/cron.allow
cat /etc/cron.deny

# Проверить системные задания (cron root)
sudo cat /etc/crontab

# Проверить cron'ы в отдельных директориях
ls /etc/cron.hourly/
ls /etc/cron.daily/
ls /etc/cron.weekly/
ls /etc/cron.d/

# Проверка, исполняются ли задания cron
grep CRON /var/log/syslog # Debian/Ubuntu
grep CRON /var/log/cron # RHEL/CentOS

# Лог всех ошибок cron
grep -i error /var/log/syslog | grep CRON

# Протестировать команду как cron бы её выполнил
SHELL=/bin/bash PATH=/usr/bin:/bin /your/command.sh

# Проверить переменные окружения cron
crontab -l | grep -E '^(SHELL|PATH|MAILTO|HOME)'

# Подсказка: cron по умолчанию шлёт stdout/stderr на email (MAILTO)


🟢 crontab -e редактирует задачи без sudo
🟢 grep CRON — полезно для логирования и дебага
🟢 Проверка $PATH особенно важна — cron запускается с минимальным окружением

🗣 Эти команды помогут быстрее находить, устранять и автоматизировать задачи cron, не оставляя их "тихо неработающими".

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12💯1
🔒 Диагностика и мониторинг systemd timers в Linux

Системные таймеры на основе systemd — современная альтернатива cron.

Они позволяют более гибко управлять задачами: запуск по времени, после загрузки, с условиями и логированием. Ниже — полезные команды для работы с таймерами.

📌 Полезные команды

# Показать все активные и неактивные таймеры
systemctl list-timers --all

# Показать только активные таймеры с временем запуска
systemctl list-timers

# Узнать подробности о конкретном таймере
systemctl status myjob.timer

# Посмотреть привязанный unit (например, сервис, который запускает таймер)
systemctl cat myjob.timer

# Немедленно запустить задачу вручную (для теста)
systemctl start myjob.service

# Проверить последние запуски и логи таймера
journalctl -u myjob.service

# Проверить системные таймеры и их состояние
systemctl list-timers | grep -v "0 loaded units listed"

# Пример создания таймера и сервиса:
# 1. /etc/systemd/system/myjob.service
[Unit]
Description=Custom job

[Service]
Type=oneshot
ExecStart=/usr/local/bin/myscript.sh

# 2. /etc/systemd/system/myjob.timer
[Unit]
Description=Run custom job every hour

[Timer]
OnCalendar=hourly
Persistent=true

[Install]
WantedBy=timers.target

# 3. Активировать таймер
sudo systemctl daemon-reexec
sudo systemctl enable --now myjob.timer


🟢 systemctl list-timers — как crontab -l, только лучше
🟢 Таймеры можно запускать от любого пользователя
🟢 Persistent=true гарантирует запуск после пропуска (например, при выключенном ПК)
🟢 Логи идут в journalctl — удобно отлаживать

🗣 Отлично подходит для DevOps, администраторов и всех, кто хочет более надёжное планирование задач, чем cron, с логами и гибкостью systemd.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
🧠 lsof — мощь, о которой все забывают

lsof — один из самых мощных инструментов в Linux для отладки, но его часто игнорируют. А зря: он показывает, какие файлы, сокеты, устройства открыты и кем.

🔍 Кто использует порт?

lsof -i :8000


Узнаешь, кто занял порт — особенно полезно, если server already running или address already in use.

🔐 Кто держит файл открытым?

lsof /var/log/syslog


Найдёт процессы, которые всё ещё используют файл — даже если ты его уже удалил (deleted).


💀 Убить процесс, держащий порт

kill -9 $(lsof -t -i :8000)


Комбо для CI/CD: освобождай порт автоматически перед перезапуском.

📦 Утечки в логах и tmp?

lsof +L1


Покажет файлы, которые удалены, но всё ещё заняты процессами — часто причина переполнения диска.

📁 Какие файлы открыл процесс?

lsof -p 1234


Прямой способ узнать, с чем работает любой процесс.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9👍4
🔥 Диагностика и оптимизация загрузки модулей ядра в Linux

Модули ядра (kernel modules) — это драйверы и расширения, которые загружаются при старте системы или по требованию.

Иногда полезно проверить, какие из них загружены, убрать лишние или добавить нужные в автозагрузку.


📌 Полезные команды

# Показать список загруженных модулей
lsmod

# Узнать, какой модуль обрабатывает конкретное устройство
lspci -k
lsusb -v | grep -i driver

# Подробная информация о модуле
modinfo <имя_модуля>

# Выгрузить модуль из ядра
sudo modprobe -r <имя_модуля>

# Загрузить модуль вручную
sudo modprobe <имя_модуля>

# Добавить модуль в автозагрузку
echo <имя_модуля> | sudo tee -a /etc/modules

# Запретить загрузку модуля (blacklist)
echo "blacklist <имя_модуля>" | sudo tee /etc/modprobe.d/blacklist.conf

# Найти модули, которые потребляют больше всего памяти
lsmod | sort -k2 -n

# Проверить ошибки модулей в логах
dmesg | grep -i <имя_модуля>


🟢 lsmod и modinfo помогают понять, какие драйверы реально работают
🟢 modprobe позволяет быстро загрузить или выгрузить модуль без перезагрузки
🟢 blacklist полезен для отключения конфликтующих или ненужных драйверов

🗣 Полезно администраторам, DevOps и тем, кто оптимизирует загрузку системы или устраняет конфликты драйверов.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍3
⚙️ Диагностика и оптимизация использования системных служб в Linux

Systemd-сервисы запускаются при старте системы и могут значительно влиять на скорость загрузки и использование ресурсов.

📌 Полезные команды

# Показать список всех активных сервисов
systemctl list-units --type=service

# Показать службы, которые запускаются при старте
systemctl list-unit-files --type=service --state=enabled

# Выключить ненужный сервис (отключить автозагрузку)
sudo systemctl disable <имя_сервиса>

# Остановить работающий сервис
sudo systemctl stop <имя_сервиса>

# Включить нужный сервис в автозагрузке
sudo systemctl enable <имя_сервиса>

# Проверить время загрузки системы и задержки
systemd-analyze blame

# Проверить, почему конкретный сервис долго запускается
systemd-analyze critical-chain <имя_сервиса>

# Найти сбойные или упавшие сервисы
systemctl --failed

# Проверить логи конкретного сервиса
journalctl -u <имя_сервиса>


🟢 systemctl list-units помогает быстро увидеть, что активно сейчас
🟢 systemd-analyze blame позволяет находить службы, замедляющие старт
🟢 disable и enable помогают управлять автозагрузкой

🗣 Полезно для администраторов, DevOps и всех, кто хочет ускорить загрузку и оптимизировать работу системы, убрав ненужные службы.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥2
📡 Диагностика и мониторинг сетевых интерфейсов в Linux

Сетевые интерфейсы — ключевой элемент работы сервера или рабочего ПК. Их состояние напрямую влияет на доступность сервисов, скорость соединения и стабильность работы сети.

📌 Полезные команды

# Показать список всех сетевых интерфейсов и их состояние
ip link show

# Показать IP-адреса интерфейсов
ip addr show

# Быстро проверить активные соединения и маршруты
ip route show

# Включить/выключить интерфейс (пример: eth0)
sudo ip link set eth0 up
sudo ip link set eth0 down

# Проверить скорость линка и дуплекс
ethtool eth0

# Показать статистику пакетов, ошибок, дропов
ip -s link show eth0

# Тест соединения с удалённым хостом
ping -c 4 8.8.8.8

# Проверить доступность порта на удалённом сервере
nc -zv example.com 443

# Запустить живой мониторинг трафика интерфейса
sudo iftop -i eth0

# Отследить, какие процессы используют сеть
sudo lsof -i -P -n


🟢 ip заменяет устаревший ifconfig и даёт больше возможностей
🟢 ethtool помогает найти проблемы с линком или скоростью
🟢 iftop и lsof полезны для живого анализа нагрузки

🗣 Эти команды незаменимы при поиске сетевых проблем, оптимизации каналов связи и мониторинге активности сервера.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
🧭 Диагностика DNS и кэша резолвера в Linux

Когда «ничего не открывается», часто виноват DNS. Эти команды помогут понять, какой резолвер используется, почему домен не резолвится, и как очистить кэш.

📌 Полезные команды

# Показать активную DNS-конфигурацию systemd-resolved (сервера, домены, кэш)
resolvectl status

# Узнать, какой сервер реально отвечает за конкретный домен
resolvectl query example.com

# Проверить, на что указывает /etc/resolv.conf (stub 127.0.0.53 или прямые NS)
readlink -f /etc/resolv.conf
cat /etc/resolv.conf

# Базовая диагностика через dig (A/AAAA/CNAME/NS)
dig example.com +noshort
dig A example.com +short
dig AAAA example.com +short
dig NS example.com +short

# Сравнить ответы от разных публичных резолверов
dig @8.8.8.8 example.com +short
dig @1.1.1.1 example.com +short

# Трассировка делегации (где ломается резолв)
dig +trace example.com

# Обратная зона (PTR)
dig -x 8.8.8.8 +short

# Проверка DNSSEC
dig example.com +dnssec +multi

# Проверить порядок источников имени в NSS (files/dns/systemd и т.д.)
grep '^hosts:' /etc/nsswitch.conf
getent hosts example.com

# Проверка доступности порта 53 (UDP/TCP) до внешнего резолвера
nc -zu 8.8.8.8 53
nc -vz 8.8.8.8 53

# Посмотреть реальные DNS-запросы (полезно при «тихих» сбоях)
sudo tcpdump -i any port 53 -n -vv -c 10

# Сброс кэша systemd-resolved и статистика
sudo resolvectl flush-caches
resolvectl statistics

# Если используется nscd/Unbound — перезапуск/сброс кэша (по ситуации)
sudo systemctl restart nscd 2>/dev/null || true
sudo unbound-control flush_zone example.com 2>/dev/null || true


🟢 resolvectl показывает, какой DNS реально используется и как кэшируется
🟢 dig +trace помогает найти точку, где ломается делегация
🟢 getent учитывает порядок в nsswitch.conf — ближе к «поведению приложений»
🟢 tcpdump подтверждает, уходят ли запросы и приходят ли ответы
🟢 Сброс кэша часто решает странные, «застывшие» проблемы резолвинга

🗣 Набор особенно полезен при миграциях, смене провайдера, проблемах с VPN/DoH и непредсказуемом поведении /etc/resolv.conf.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3
🧭 Аудит и управление Linux capabilities (вместо SUID)

Capabilities позволяют выдавать бинарям точечные привилегии (например, только «сырые сокеты») вместо полного root через SUID. Этот набор команд поможет быстро проверить, где используются capabilities, назначать/снимать их и запускать процессы с урезанными правами.

📌 Полезные команды

# Установить инструменты (Debian/Ubuntu)
sudo apt install -y libcap2-bin

# Посмотреть назначенные capabilities у конкретного бинаря
getcap /usr/bin/ping

# Рекурсивно найти все файлы с capabilities в системе
sudo getcap -r / 2>/dev/null

# Заменить SUID на точечные права: убрать SUID у ping и выдать CAP_NET_RAW
sudo chmod u-s /bin/ping
sudo setcap cap_net_raw+ep /bin/ping
getcap /bin/ping # проверить

# Сбросить все capabilities у файла
sudo setcap -r /path/to/bin

# Посмотреть текущие capabilities процесса (вашей оболочки)
capsh --print

# Декодировать маску эффективных прав текущего процесса
capsh --decode=$(grep CapEff /proc/$$/status | awk '{print $2}')

# Узнать эффективные права конкретного PID (пример для nginx)
PID=$(pidof nginx); grep Cap(Prm|Eff|Inh) /proc/$PID/status

# Запустить команду с принудительно урезанными правами (без CAP_NET_ADMIN)
sudo capsh --drop=cap_net_admin -- -c 'your_command_here'

# Полный список и описание всех capabilities
man 7 capabilities


🟢 Capabilities позволяют отказаться от опасного SUID и выдать только нужные привилегии
🟢 getcap/setcap — быстрый аудит и точечная настройка прав бинарей
🟢 capsh помогает печатать/декодировать маски и запускать команды с пониженными правами

🗣 Полезно при hardening серверов, аудите безопасности и минимизации прав системных утилит.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1