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
🔜 Тонкости работы с логгированием в Python: краткий гайд для разработчиков

В статье разбирается модуль logging в Python — стандартный инструмент для логирования. Показаны базовые приёмы настройки, примеры и советы, как писать логи понятно и полезно для жизни проекта.

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

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

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤‍🔥4🤔1
➡️ Мониторинг свободного места на диске в Linux и автоматическая очистка

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

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

#!/bin/bash

# Минимально допустимый процент свободного места
MIN_FREE=15

# Директория для очистки
TARGET_DIR="/var/cache"

# Получаем процент свободного места на /
FREE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')

if [ "$FREE" -ge $((100 - MIN_FREE)) ]; then
echo "🚨 Мало свободного места! Очищаем $TARGET_DIR..."
find "$TARGET_DIR" -type f -atime +7 -delete
echo " Очистка завершена"
fi


🟢 Проверяет свободное место с помощью df
🟢 Удаляет файлы старше 7 дней в указанной папке
🟢 Полезно для автоматического обслуживания сервера

➡️ Добавьте в crontab для запуска раз в день:
0 2 * * * /path/to/disk_clean.sh


😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍2
🎯 Python: следим за изменениями в папке

Хочешь, чтобы Python сам сообщал тебе, если в какой-то папке появится новый файл, что-то удалилось или изменилось? Это мега-удобно: для логов, загрузок, фоток и даже безопасности 🔐

📦 Установка нужной библиотеки

pip install watchdog


🐍 Простой скрипт слежения за папкой

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import time

class WatcherHandler(FileSystemEventHandler):
def on_created(self, event):
print(f'Файл создан: {event.src_path}')

def on_deleted(self, event):
print(f'Файл удалён: {event.src_path}')

def on_modified(self, event):
print(f'Файл изменён: {event.src_path}')

if __name__ == "__main__":
path = "/home/user/Загрузки" # Замени на свою папку
observer = Observer()
observer.schedule(WatcherHandler(), path=path, recursive=True)
observer.start()

print(f'Следим за папкой: {path}')
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()


💡 Что это даёт?

✔️ Реагируешь на вирусы/скачки/удаления
✔️ Можно запустить действия: отправить email, перекинуть в облако
✔️ Подходит для мониторинга рабочих логов, папки с документами и т.п.

📌 Идея: Можно написать мини-уведомлялку через Telegram-бота, если интересно — сделаем продолжение 😉

😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30
Долго продержался

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣26❤‍🔥2👍1🌚1
👩‍💻 Как Linux поглощает твою жизнь

В видео показывают путь обычного пользователя Linux от первой установки Ubuntu до полного погружения в дистрибутивный культ с Gentoo, кастомизацией и лёгкой социофобией.

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

😎 PyLinux | #videos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
🔜 Повышение привилегий через Disk Group

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

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
⚙️ Быстрый просмотр структуры каталогов в Linux

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

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

# Установить tree (если не установлено)
sudo apt install tree # Debian/Ubuntu
sudo pacman -S tree # Arch
sudo dnf install tree # Fedora

# Посмотреть структуру директорий текущей папки
tree

# Показать только папки (без файлов)
tree -d

# Ограничить глубину вложенности
tree -L 2

# Подсчитать количество файлов и папок
tree -f --noreport | wc -l


🟢 tree показывает дерево каталогов в терминале
🟢 Можно фильтровать только папки (-d)
🟢 Отлично подходит для анализа структуры проекта

🗣 Незаменимый инструмент при работе с большими директориями и разборе файловой системы.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🧠 Python: Простой способ ограничить частоту вызова функции (декоратор throttling)

В некоторых случаях (например, при работе с API или ресурсоёмкими функциями) нужно ограничить частоту вызова функции. В Python это можно сделать с помощью декоратора.

📌 Например: не вызывать функцию чаще, чем 1 раз в 3 секунды.

✔️ Пример кода:

import time
from functools import wraps

def throttle(seconds):
def decorator(func):
last_call = [0]
@wraps(func)
def wrapper(*args, **kwargs):
now = time.time()
if now - last_call[0] >= seconds:
last_call[0] = now
return func(*args, **kwargs)
else:
print(f"Подожди ещё {round(seconds - (now - last_call[0]), 2)} сек")
return wrapper
return decorator

@throttle(3)
def fetch_data():
print("✔️ Данные успешно получены!")


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

for _ in range(5):
fetch_data()
time.sleep(1)


👍 Разбор:

- throttle(seconds) — внешний декоратор, который принимает интервал.
- last_call — список, чтобы сохранить состояние между вызовами.
- wrapper — обёртка, которая проверяет, прошло ли достаточно времени.


💡 Запомни:

- Подобный приём особенно полезен при работе с API (например, Telegram Bot API, Discord API и т.д.).
- Это способ сделать поведение программы более контролируемым и стабильным.

😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Главное дефендер не трогай

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32🤣5😁2
⚙️ Библиотека Python: Box

Box — это удобная библиотека для работы со словарями в стиле dot-access (доступ к ключам как к атрибутам). Позволяет обращаться к данным через точку, при этом оставаясь совместимой с обычными dict.

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

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

from box import Box

# Создаем Box-словарь
config = Box({
"database": {
"host": "localhost",
"port": 5432
}
})

print(config.database.host) # localhost
print(config["database"]["port"]) # 5432

# Можно добавлять новые значения как атрибуты
config.api.token = "secret_token"

print(config.api.token) # secret_token


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

🟢 Поддержка вложенных структур с dot-access
🟢 Полностью совместим с обычными dict
🟢 Можно легко преобразовать обратно в dict

✔️ Установка

pip install python-box


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

😎 PyLinux | #python_libs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🔜 Делаем медиа сервер из Orange Pi Zero 3

В статье покажут, как поднять DLNA-сервер и Transmission на Orange Pi Zero 3 без монитора и клавы. Всё ставится через SSH прямо на диск — удобно, быстро и без лишнего гемора.

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6👍2
⚠️ Автоматическое создание резервной копии важных файлов при подключении USB-накопителя

Этот скрипт автоматически копирует указанные файлы на USB-флешку при её подключении. Полезно для бэкапа конфигураций, документов или скриптов.

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

#!/bin/bash

# Каталог для бэкапа
BACKUP_DIR="/home/user/backup"

# Папка на USB (должна быть заранее известна)
USB_MOUNT="/media/user/USB"

# Проверяем, подключён ли USB-накопитель
if mount | grep "$USB_MOUNT" > /dev/null; then
echo "📦 Копируем файлы на USB..."
rsync -av --delete "$BACKUP_DIR/" "$USB_MOUNT/backup/"
echo " Резервная копия завершена."
else
echo " USB-накопитель не найден."
fi


🟢 Проверяет подключённый USB-диск
🟢 Автоматически копирует файлы с помощью rsync
🟢 Можно использовать с udev или запускать вручную

➡️ Идеально для быстрого создания резервных копий конфигов или скриптов на внешний накопитель

😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Жалко

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22👍4🔥1
👩‍💻 1 СТРОКА Python, без которой НОВИЧКОВ ЖДУТ ПРОБЛЕМЫ

В видео объясняется, зачем писать if __name__ == "__main__" в Python, как эта строчка влияет на запуск скриптов и когда её стоит использовать. Всё — на практических примерах.

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

😎 PyLinux | #videos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤‍🔥3
🔜 Чат в терминале Linux: почти «Матрица» в реальной жизни

В статье рассказывается о том, как создать защищённое текстовое общение в духе «Матрицы» — без серверов и доверия, используя инструменты типа Cryptcat. Это про хакерскую романтику и практическую криптографию.

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
⚙️ Быстрое сравнение директорий в Linux с помощью diff и rsync

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

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

# Сравнить два каталога построчно
diff -qr dir1/ dir2/

# Сравнить содержимое с выводом различий
diff -r dir1/ dir2/

# Только отличающиеся файлы по имени и дате
rsync -avun dir1/ dir2/

# Сравнить каталоги с сохранением логов
rsync -av --dry-run dir1/ dir2/ > changes.log


🟢 diff -r показывает отличия в содержимом файлов
🟢 rsync --dry-run подойдёт, если планируется синхронизация
🟢 Отличный способ проверить, всё ли синхронизировано или что изменилось

🗣 Подходит для сравнения проектов, бэкапов и любых директорий перед переносом или архивацией.

😎 PyLinux | #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
🫠

😎 PyLinux | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣37🗿1
⚙️ Библиотека Python: bidict

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

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

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

from bidict import bidict

# Создаём двунаправленный словарь
b = bidict({"a": 1, "b": 2})

# Доступ по ключу
print(b["a"]) # 1

# Обратный доступ — по значению
print(b.inv[1]) # 'a'

# Добавление новых пар
b["c"] = 3
print(b.inv[3]) # 'c'


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

🟢 Быстрый доступ в обе стороны
🟢 Исключает дублирование значений (в отличие от обычных dict)
🟢 Подходит для создания уникальных соответствий (например, id ↔️ name)

✔️ Установка

pip install bidict


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

😎 PyLinux | #python_libs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤣2
🔜 MCP своими руками

Разбираюсь, как устроен протокол MCP от Anthropic, и повторяю его механику своими руками — чтобы не просто использовать, а понимать, как он живёт изнутри.

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

😎 PyLinux | #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🔧 Когда apt не работает: Решение проблем с блокировкой и зависшими процессами

Если при установке пакетов через apt ты получаешь ошибку вроде:

Could not get lock /var/lib/dpkg/lock-frontend


или

dpkg was interrupted, you must manually run 'sudo dpkg --configure -a'


это значит, что система занята другим процессом или установка оборвалась.

📌 Что делать:

1. Проверить активные процессы APT:

ps aux | grep -i apt


Если видишь зависший apt или dpkg, заверши процесс:

sudo kill -9 <PID>


2. Удалить файлы блокировки:

sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock


3. Починить менеджер пакетов:

sudo dpkg --configure -a
sudo apt update


4. Проверить, не сломались ли зависимости:

sudo apt --fix-broken install


✔️ Всё, теперь apt снова работает.

💡 Запомни:

🟢Не прерывай установку пакетов (особенно Ctrl+C).
🟢 Не запускай apt параллельно в нескольких окнах.
🟢 Лучше сначала проверить, что работает в фоне, чем удалять файлы блокировки.

😎 PyLinux | #scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤‍🔥4🔥21