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

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

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

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

РКН: 5999153523
Download Telegram
💾

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39😁4
✉️ Автоматическая проверка наличия обновлений пакетов в Linux (APT)

Если вы администрируете сервер или рабочую станцию на Debian/Ubuntu, важно регулярно проверять наличие обновлений. Этот скрипт автоматизирует проверку доступных обновлений, выводит список и пишет лог — удобно для мониторинга и уведомлений.

⚙️ Исходный код

#!/bin/bash

LOG_FILE="/var/log/apt_update_check.log"
echo "🔄 Проверка обновлений APT... $(date)" | tee -a "$LOG_FILE"

# Обновляем списки пакетов
sudo apt update -qq

# Проверяем наличие обновлений
UPGRADES=$(apt list --upgradable 2>/dev/null | grep -v "Listing")

if [ -n "$UPGRADES" ]; then
echo "📦 Доступны обновления:" | tee -a "$LOG_FILE"
echo "$UPGRADES" | tee -a "$LOG_FILE"
else
echo " Все пакеты актуальны." | tee -a "$LOG_FILE"
fi

echo "🧾 Проверка завершена." | tee -a "$LOG_FILE"


🟢 apt update обновляет кэш пакетов
🟢 apt list --upgradable показывает, что требует обновления
🟢 Скрипт можно запускать вручную, по cron или в systemd таймере
🟢 Удобен для ведения истории обновлений или уведомлений через email/Telegram

➡️ Добавьте в crontab для ежедневной проверки:
0 6 * * * /path/to/apt_update_check.sh


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


😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
🔜 От работяги до айтишника

После пары лет доставки пиццы взялся за конструктор с Orange Pi и Mega2560. Распаковал, прочитал инструкцию (да-да!), начал учиться с нуля. Рассказываю, как вкатился в электронику.

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9👍3🌚1🤣1
➡️ Зачем вам линукс в 2025

В 2025 Windows окончательно сошла с ума, а Linux стал её вменяемой альтернативой. Объясняю, почему даже не-айтишникам стоит попробовать — и как не сгореть на первом же дистрибутиве.

📱 Ссылка на источник

😎 PyLinux | #videos
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥10🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40❤‍🔥2
👀 Поиск и анализ зомби-процессов в 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
🔜 Процедурная генерация воксельных рогаликовых уровней

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

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤‍🔥1
👩‍💻 Библиотека Python: porcupine

porcupine — это минималистичная библиотека для создания простых интерактивных CLI-приложений с возможностью подсветки, автодополнения и асинхронного ввода.

Основана на prompt_toolkit, но упрощает его использование.

⚙️ Пример использования
from porcupine import interactive

@interactive
def shell():
while True:
cmd = input(">> ")
if cmd == "exit":
break
print(f"Вы ввели: {cmd}")

shell()


Преимущества:


🟢 Простой способ сделать интерактивный интерфейс
🟢 Работает в синхронном и асинхронном режиме
🟢 Упрощает создание REPL-утилит и внутренних CLI
🟢 Можно комбинировать с click, rich, prompt_toolkit

✔️ Установка

pip install porcupine


➡️ Ссылка на документацию

😎 PyLinux | #python_libs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤‍🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40
🧰 Мониторинг использования swap в Linux

Использование swap может указывать на нехватку оперативной памяти. Этот скрипт позволяет отслеживать текущий объём занятого swap, логировать превышения порога и помогает вовремя выявить проблемы с производительностью.

⚙️ Исходный код

#!/bin/bash

LOG_FILE="/var/log/swap_monitor.log"
THRESHOLD_MB=100 # Порог использования swap в мегабайтах

echo "📊 Проверка использования swap... $(date)" | tee -a "$LOG_FILE"

# Получаем текущий объём используемого swap в МБ
USED_SWAP=$(free -m | awk '/Swap:/ {print $3}')

if [ "$USED_SWAP" -ge "$THRESHOLD_MB" ]; then
echo "⚠️ Использование swap: ${USED_SWAP}MB (выше порога ${THRESHOLD_MB}MB)" | tee -a "$LOG_FILE"
else
echo " Swap в норме: ${USED_SWAP}MB" | tee -a "$LOG_FILE"
fi

echo "🔚 Проверка завершена." | tee -a "$LOG_FILE"


🟢 free -m быстро даёт информацию о RAM и swap
🟢 Скрипт логирует превышения порога — можно подключить к email/телеграм-уведомлениям
🟢 Удобен для серверов с ограниченной ОЗУ или подозрением на утечки памяти

➡️ Добавьте в crontab для ежедневной проверки:
*/30 * * * * /path/to/swap_monitor.sh


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


😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9👍4🔥1
🔜 Embedded Linux для начинающих (Часть первая)

Думал, собрать Linux на одноплатник — как установить Ubuntu. Но с китайским железом пришлось зарываться в Buildroot, дрова, ядро и боль. Делюсь опытом — чтобы ты не попал, как я.

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
➡️ ПРОЦЕССЫ В LINUX

Как создаётся процесс? Что такое сигналы? И много чего ещё надо знать и для работы и для собесов. Тут прошлись по фундаменту процессов.

📱 Ссылка на источник

😎 PyLinux | #videos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40❤‍🔥3🔥2
🌐 Поиск и контроль открытых сетевых соединений в 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
🔜 Собираем MVP product search: дообучение E5 и веб-сервис для сравнения поисковых выдач

Разбираемся, как доставлять товары не только физически, но и по запросу в поиске. Собираем e-com MVP, дообучаем E5, меряем качество, сравниваем с BM25. Ищем, где поиск буксует.

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥2
👩‍💻 Библиотека Python: icontract

icontract — это надёжная библиотека для Design by Contract (контрактное программирование) в Python. Добавляет @require, @ensure, @invariant, что помогает явно описывать предусловия, постусловия и инварианты в коде.

Идеальна для повышения читаемости функции, обнаружения ошибок на ранних этапах и самодокументирования.

⚙️ Пример использования
import icontract

@icontract.require(lambda x: x >= 0)
@icontract.ensure(lambda result: result >= 0)
def sqrt(x: float) -> float:
return x ** 0.5

print(sqrt(16)) # ➔ 4.0
sqrt(-1) # ViolationError: x >= 0

@icontract.invariant(lambda self: self.balance >= 0)
class Account:
def __init__(self, balance: int) -> None:
self.balance = balance

@icontract.require(lambda self, amount: amount > 0)
@icontract.ensure(lambda self, OLD: self.balance == OLD.self.balance - amount)
def withdraw(self, amount: int) -> None:
self.balance -= amount


Преимущества:


🟢 Явный синтаксис предусловий, постусловий и инвариантов
🟢 Проверка контрактов во время выполнения
🟢 Интеграция с type hints и статической проверкой

✔️ Установка

pip install icontract


➡️ Ссылка на документацию

😎 PyLinux | #python_libs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤‍🔥3
🧼 Автоматическое удаление неиспользуемых APT-пакетов в Linux

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

⚙️ Исходный код

#!/bin/bash

LOG_FILE="/var/log/apt_cleanup.log"
echo "🧹 Очистка системы от неиспользуемых пакетов... $(date)" | tee -a "$LOG_FILE"

# Удаление неиспользуемых зависимостей
sudo apt autoremove -y | tee -a "$LOG_FILE"

# Очистка кэша пакетов
sudo apt clean | tee -a "$LOG_FILE"

# Очистка устаревших пакетов локального кэша
sudo apt autoclean | tee -a "$LOG_FILE"

echo " Очистка завершена." | tee -a "$LOG_FILE"


🟢 autoremove удаляет пакеты, которые больше не требуются
🟢 clean освобождает место, удаляя загруженные архивы
🟢 autoclean очищает только устаревшие архивы, которые уже недоступны в репозиториях

➡️ Добавьте в crontab для еженедельной очистки:
0 4 * * 0 /path/to/apt_cleanup.sh


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


😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥7👍5
🔜 Сбор событий Linux: есть цель – ищем путь

Разобрал, как работают компоненты журналирования в Linux, собрал схему для быстрой диагностики. Объясняю, кто с кем дружит, где бутылочные горлышки и зачем это знать безопаснику.

🖥 Перейти к статье

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6👍3
➡️ CACHYOS МЕНЯ ПОРАДОВАЛА / Linux

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

📱 Ссылка на источник

😎 PyLinux | #videos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3