Рассказал, как мы из хаоса с 11К серверов и 35 админов сделали предсказуемую систему: процессы, документы, порядок. Боль, рост и немного спасительной бюрократии.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔3❤🔥1
🔆 Управление яркостью и питанием экрана в Linux
Если вы работаете с ноутбуком или энергоэффективной рабочей станцией, управление яркостью и питанием экрана — важный способ продлить срок службы батареи и снизить нагрузку на глаза.
📌 Полезные команды
🟢
🟢
🗣 Эти команды подойдут тем, кто хочет контролировать поведение экрана вручную или автоматизировать энергосбережение.
😎 PyLinux | #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
управляет экраном и таймерами энергосбереженияPlease open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁39👍4❤🔥2🔥2
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤🔥2
Путь парсинга YouTube — через хаки, боль и падения. Но всё равно всё заканчивается одним: официальным YouTube Data API v3. Там квоты, но хотя бы без боли..
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8
Иногда 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
проверяет, работает ли служба*/10 * * * * /path/to/service_healthcheck.sh
🗣 Особенно полезен на серверах без полноценного мониторинга (Prometheus, Zabbix) или в односерверных проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20❤🔥1🤣1
В этом видео я покажу инструменты для повышения продуктивности и удобства при работе с Linux. Хотя упор я делаю именно на Linux, но большинство инструментов могут работать как и на Windows, так и на MacOS.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥3
Отобрали 4 лучших доклада с System Level Meetup: для C++ — мета-программирование и девиртуализация, для Linux — kernel bypass и Direct Memory Access на Zynq.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Когда вы синхронизируете резервные копии, разворачиваете новые версии проекта или проверяете содержимое внешнего диска, важно быстро и точно сравнить две папки. Эти команды помогут выявить отличия.
# Сравнить два каталога побайтово (без рекурсии)
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
— удобны для более точечного анализаPlease open Telegram to view this post
VIEW IN TELEGRAM
👍11
Please open Telegram to view this post
VIEW IN TELEGRAM
😁41
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}
➕ Преимущества:
filter
, map
, group_by
, sum
, reduce
, flatten
pip install PyFunctional
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4
Что на самом деле делает Linux, когда ты вводишь пароль? В статье — про механизмы аутентификации, SSH vs пароли и настройки для безопасного входа. Без магии — только сисадминская практика.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5👍5
Иногда важные системные файлы могут быть случайно или намеренно изменены. Этот скрипт помогает выявить изменения в бинарниках, конфигурациях и других критичных файлах с помощью встроенного механизма
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
ограничивает проверку только конфигурационными файлами.@daily /path/to/integrity_check.sh
🗣 Подходит для серверов, критичных к стабильности и безопасности — например, bastion-хостов, шлюзов или CI/CD-инфраструктуры.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22🌚3
Разбираемся, как работают “dunder”-методы (init, str, add и др.) и почему они — один из самых мощных инструментов Python. Примеры, объяснение и магия кода внутри.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Рассказываю, как превратить ванильную Fedora в удобную машину без боли: автоматизация, скрипты, магия CLI и немного душевного мазохизма. Всё по науке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥3🗿1
Со временем в системе накапливаются временные, кэшированные и устаревшие файлы, которые занимают дисковое пространство и могут замедлять работу. Эти команды помогут безопасно их находить и удалять.
# Очистить системный кэш 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
— удобны для ручного контроля и визуального анализаPlease open Telegram to view this post
VIEW IN TELEGRAM
👍14
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40
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()
➕ Преимущества:
stdout/stderr
— шрифты не слетаютpip install yaspin
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍12
Рассказываю, как перешёл от ненависти к терминалу до влюблённости в боль VIM и *nix. Не сразу, но теперь кайфую от каждой консольной команды.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9