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
🔜 Как обуздать хаос в распределенной и быстрорастущей ИТ-команде

Рассказал, как мы из хаоса с 11К серверов и 35 админов сделали предсказуемую систему: процессы, документы, порядок. Боль, рост и немного спасительной бюрократии.

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔3❤‍🔥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
Можно просить повышение...🚬

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁39👍4❤‍🔥2🔥2
⚙️ Библиотека Python: cloup

cloup — это расширение для Click, добавляющее поддержку группировки опций, взаимных зависимостей и контекстных ограничений.

Полезно, если ты создаёшь сложные CLI-инструменты с множеством параметров и хочешь сделать интерфейс логичным и защищённым от ошибок пользователя.

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

import cloup
from cloup import option_group

@cloup.command()
@option_group(
"Авторизация",
cloup.option("--user", help="Имя пользователя"),
cloup.option("--token", help="API токен")
)
@option_group(
"Настройки вывода",
cloup.option("--verbose", is_flag=True),
cloup.option("--json", is_flag=True)
)
def cli(user, token, verbose, json):
print(f"👤 User: {user}, Token: {token}")
print(f"🔧 Verbose: {verbose}, JSON: {json}")

if __name__ == "__main__":
cli()


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


🟢 Группировка опций по смыслу прямо в --help
🟢 Валидация зависимых и исключающих опций
🟢 Поддержка ограничений и логических условий

✔️ Установка

pip install cloup


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

😎 PyLinux | #python_libs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤‍🔥2
🔜 Парсим YouTube на Python как для взрослых: отказоустойчивый скрипт с ротацией ключей

Путь парсинга YouTube — через хаки, боль и падения. Но всё равно всё заканчивается одним: официальным YouTube Data API v3. Там квоты, но хотя бы без боли..

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8
🔁 Автоматическая проверка и перезапуск зависших systemd-сервисов в Linux

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

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

#!/bin/bash

# Список сервисов для проверки
SERVICES=("nginx" "postgresql" "my_custom_service")
LOG_FILE="/var/log/systemd_healthcheck.log"

echo "🔍 Проверка состояния сервисов... $(date)" | tee -a $LOG_FILE

for svc in "${SERVICES[@]}"; do
systemctl is-active --quiet "$svc"
STATUS=$?

if [ $STATUS -ne 0 ]; then
echo " Сервис $svc не работает. Перезапускаем..." | tee -a $LOG_FILE
systemctl restart "$svc"
sleep 1
systemctl is-active --quiet "$svc" && echo " $svc запущен повторно." | tee -a $LOG_FILE
else
echo "✔️ $svc работает исправно." | tee -a $LOG_FILE
fi
done


🟢 systemctl is-active проверяет, работает ли служба
🟢 Автоматический перезапуск помогает поддерживать непрерывность работы
🟢 Удобен для nginx, postgresql, celery, flask-сервисов и пр.

➡️ Добавьте в crontab для регулярного мониторинга (например, каждые 10 минут):
*/10 * * * * /path/to/service_healthcheck.sh


🗣 Особенно полезен на серверах без полноценного мониторинга (Prometheus, Zabbix) или в односерверных проектах.


😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥4
Будешь и за тиму отрабатывать 🫠

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20❤‍🔥1🤣1
➡️ Необычные и ПОЛЕЗНЫЕ утилиты LINUX, о которых вы, скорее всего, не знали

В этом видео я покажу инструменты для повышения продуктивности и удобства при работе с Linux. Хотя упор я делаю именно на Linux, но большинство инструментов могут работать как и на Windows, так и на MacOS.

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

😎 PyLinux | #videos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥3
🔜 Полиморфизм, мета-программирование и космическая баллистика: 4 доклада о C++ и Linux Kernel

Отобрали 4 лучших доклада с System Level Meetup: для C++ — мета-программирование и девиртуализация, для Linux — kernel bypass и Direct Memory Access на Zynq.

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🔃 Сравнение содержимого директорий в 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
Тимлидам на заметку

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁41
⚙️ Библиотека Python: PyFunctional

PyFunctional — это мощная библиотека для декларативной обработки коллекций в стиле функционального программирования. Позволяет применять map, filter, reduce и другие операции к потокам данных с лаконичным синтаксисом.

Идеально подходит, если ты хочешь работать с данными в цепочках и писать код, близкий к Scala или LINQ.

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

from functional import seq

# Работа с коллекцией: фильтрация, преобразование, агрегация
data = seq([1, 2, 3, 4, 5]) \
.filter(lambda x: x % 2 == 0) \
.map(lambda x: x * 10) \
.reduce(lambda x, y: x + y)

print(data) # 60

# Обработка строк и списков словарей
names = seq(["Alice", "Bob", "Charlie"]).map(str.upper).to_list()
print(names) # ['ALICE', 'BOB', 'CHARLIE']

users = [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 20},
{"name": "Charlie", "age": 25}
]

youngest = seq(users).min_by(lambda u: u["age"])
print(youngest) # {'name': 'Bob', 'age': 20}


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


🟢 Цепочки обработки данных без промежуточных переменных
🟢 Поддержка генераторов, списков, JSON и CSV
🟢 Функции как в Scala: filter, map, group_by, sum, reduce, flatten

✔️ Установка

pip install PyFunctional


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

😎 PyLinux | #python_libs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4
🔜 Почему при аутентификации в Linux пароль хуже ключа

Что на самом деле делает Linux, когда ты вводишь пароль? В статье — про механизмы аутентификации, SSH vs пароли и настройки для безопасного входа. Без магии — только сисадминская практика.

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5👍5
🧪 Проверка целостности бинарников и конфигураций в Linux

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

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

#!/bin/bash

LOG_FILE="/var/log/integrity_check.log"
echo "🔎 Проверка целостности установленных пакетов... $(date)" | tee -a "$LOG_FILE"

# Устанавливаем debsums, если не установлен
if ! command -v debsums &> /dev/null; then
echo "📦 Установка debsums..." | tee -a "$LOG_FILE"
sudo apt update && sudo apt install -y debsums
fi

# Выполняем проверку всех пакетов
debsums -s | tee -a "$LOG_FILE"

# Проверка только конфигурационных файлов
echo "⚙️ Проверка конфигураций:"
debsums -cs | tee -a "$LOG_FILE"

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


🟢 debsums проверяет контрольные суммы всех файлов, установленных через APT
🟢 Может обнаружить взломы, ошибки обновлений или случайные изменения
🟢 -cs ограничивает проверку только конфигурационными файлами.

➡️ Добавьте в crontab для регулярной проверки:
@daily /path/to/integrity_check.sh


🗣 Подходит для серверов, критичных к стабильности и безопасности — например, bastion-хостов, шлюзов или CI/CD-инфраструктуры.


😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Покупаем?

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22🌚3
➡️ Освой магические методы Python — и пиши как чародей [EN]

Разбираемся, как работают “dunder”-методы (init, str, add и др.) и почему они — один из самых мощных инструментов Python. Примеры, объяснение и магия кода внутри.

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

😎 PyLinux | #videos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
🔜 Setting up Fedora: адаптированная версия

Рассказываю, как превратить ванильную Fedora в удобную машину без боли: автоматизация, скрипты, магия CLI и немного душевного мазохизма. Всё по науке.

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥3🗿1
🧹 Очистка временных и устаревших файлов в 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
Бизнесплан

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40
👩‍💻 Библиотека Python: yaspin

yaspin — это легковесная и мощная библиотека для отображения текстовых спиннеров в терминале во время длительных операций.

Отлично подходит для CLI-приложений — улучшает UX, показывает, что скрипт активно работает, и при этом не усложняет код.

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

# Начало спиннера с текстом и цветом
with yaspin(text="Загрузка...", color="cyan") as spinner:
time.sleep(2) # длительная операция
spinner.ok(" ") # смена иконки при успешном завершении


Или как декоратор:
from yaspin import yaspin

@yaspin(text="Обработка данных...")
def process():
time.sleep(3)
return "done"

process()


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


🟢 Более 70 анимаций (включая “shark”, “earth”) для визуального оформления
🟢 Полный контроль над стилем, цветом и положением спиннера
🟢 Яркий индикатор активности без зависимости от GUI
🟢 Безопасен при перенаправлении stdout/stderr — шрифты не слетают

✔️ Установка

pip install yaspin


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

😎 PyLinux | #python_libs
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍12
🔜 Жизнь в консоли или как я полюбил боль

Рассказываю, как перешёл от ненависти к терминалу до влюблённости в боль VIM и *nix. Не сразу, но теперь кайфую от каждой консольной команды.

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9