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
⚙️ Анализ повторяющихся задач cron в Linux

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

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

# Показать текущие задания для всех пользователей
for user in $(cut -f1 -d: /etc/passwd); do
echo "🧑‍💻 Задания пользователя: $user"
crontab -l -u "$user" 2>/dev/null
done

# Найти повторы в crontab текущего пользователя
crontab -l | sort | uniq -d

# Проверить системный cron (например, /etc/crontab)
cat /etc/crontab

# Найти скрипты, вызываемые в cron чаще всего
grep -hr /etc/cron* | awk '{print $6}' | sort | uniq -c | sort -nr | head

# Проверка синтаксиса cron-задания (через crontab.guru)
# (пример через браузер)
xdg-open "https://crontab.guru/#*/5_*_*_*_*"


🟢 crontab -l показывает все задания пользователя
🟢 uniq -d выявляет дублирующиеся строки
🟢 Анализ системного cron и частоты запуска помогает избежать конфликтов

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

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
📊 Проверка и анализ использования дисков в Linux

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

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

# Показать общее использование всех смонтированных разделов
df -h

# Показать размер каждой папки в корне
du -h --max-depth=1 / | sort -h

# Найти самые большие директории в /home
du -sh /home/* | sort -hr | head

# Использовать интерактивный анализатор ncdu
sudo apt install ncdu
ncdu /

# Найти файлы больше 1 ГБ
find / -type f -size +1G -exec ls -lh {} \; 2>/dev/null | awk '{ print $9 ": " $5 }'


🟢 df -h показывает общую загрузку по разделам
🟢 du помогает найти "тяжёлые" каталоги
🟢 ncdu — удобный инструмент для интерактивного анализа
🟢 find -size выявляет самые крупные файлы

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

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
📁 Поиск и удаление пустых папок в Linux

Со временем в системе скапливаются пустые директории — после удаления пакетов, распаковки архивов или неудачных установок. Эти команды помогут находить и при необходимости удалять такие папки.

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

# Найти все пустые папки в системе (может занять время)
find / -type d -empty 2>/dev/null

# Найти пустые директории в домашнем каталоге
find ~/ -type d -empty

# Удалить все пустые директории в указанной папке
find /path/to/dir -type d -empty -delete

# Посчитать количество пустых папок в каталоге
find /path/to/dir -type d -empty | wc -l

# Найти только "глубоко пустые" каталоги (вложенные без файлов)
find /path/to/dir -depth -type d -empty


🟢 find -empty помогает быстро выявить пустые директории
🟢 -delete автоматически очищает мусор
🟢 Удобно применять для домашней папки, временных каталогов, старых проектов

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

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤‍🔥1🔥1
🔆 Управление яркостью и питанием экрана в 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