Со временем в системе скапливаются пустые директории — после удаления пакетов, распаковки архивов или неудачных установок. Эти команды помогут находить и при необходимости удалять такие папки.
# Найти все пустые папки в системе (может занять время)
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
автоматически очищает мусорPlease open Telegram to view this post
VIEW IN TELEGRAM
👍13❤🔥1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁48💯1
sorcery — это удобная отладочная библиотека, которая позволяет печатать переменные с их именами с помощью магического
print(expr)
— без необходимости вручную писать имена.Полезна, когда нужно быстро выводить значения переменных для отладки, но лень писать
f"{var=}"
или использовать ic()
.from sorcery import spell
@spell
def test():
name = "Alice"
age = 30
print(name, age) # Автоматически напечатает: name='Alice', age=30
test()
name='Alice', age=30
➕ Преимущества:
pip install sorcery
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Показываю, как работает дискретное преобразование Фурье, не через формулы, а через анимации, синусоиды и телефонные гудки. Всё — на уровне 9 класса и с Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10👍6🔥1
Если вы хотите отслеживать появление новых файлов в определённой директории (например, загрузки, обмен данными или бэкапы), этот скрипт поможет вести лог всех изменений.
#!/bin/bash
WATCH_DIR="/home/user/incoming"
LOG_FILE="/var/log/new_files.log"
STATE_FILE="/var/tmp/last_files_state.txt"
echo "📁 Сканирование новых файлов в $WATCH_DIR..." | tee -a $LOG_FILE
# Получаем текущий список файлов
find "$WATCH_DIR" -type f > /tmp/current_files.txt
# Если это первый запуск — сохраняем текущий список и выходим
if [ ! -f "$STATE_FILE" ]; then
cp /tmp/current_files.txt "$STATE_FILE"
echo "⚠️ Первичный запуск — база создана." | tee -a $LOG_FILE
exit 0
fi
# Ищем новые файлы по сравнению с предыдущим состоянием
NEW_FILES=$(comm -13 "$STATE_FILE" /tmp/current_files.txt)
if [ -n "$NEW_FILES" ]; then
echo "🆕 Найдены новые файлы:"
echo "$NEW_FILES" | tee -a $LOG_FILE
else
echo "✔️ Новых файлов не обнаружено." | tee -a $LOG_FILE
fi
# Обновляем состояние
cp /tmp/current_files.txt "$STATE_FILE"
find
быстро обходит все файлы в каталогеcomm
сравнивает текущее и предыдущее состояния*/15 * * * * /path/to/watch_new_files.sh
🗣 Подходит для систем, где важно знать, что и когда появилось — например, при интеграции с внешними источниками данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Please open Telegram to view this post
VIEW IN TELEGRAM
😁33❤🔥2
В видео рассказываю, как с нуля на практике учил Python, собирая ботов под свои задачи. Без теории и учебников — только гайды, гугл и цель. Работает? Значит, учусь.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Рассказал, как мы из хаоса с 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