Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39😁4
Если вы администрируете сервер или рабочую станцию на 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"
0 6 * * * /path/to/apt_update_check.sh
🗣 Идеально подходит для серверов без автоматических обновлений — вы будете знать, когда что-то требует вмешательства.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
После пары лет доставки пиццы взялся за конструктор с Orange Pi и Mega2560. Распаковал, прочитал инструкцию (да-да!), начал учиться с нуля. Рассказываю, как вкатился в электронику.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9👍3🌚1🤣1
В 2025 Windows окончательно сошла с ума, а Linux стал её вменяемой альтернативой. Объясняю, почему даже не-айтишникам стоит попробовать — и как не сгореть на первом же дистрибутиве.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40❤🔥2
Зомби-процессы (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
— эффективные инструменты анализаtop
и htop
показывают общее количество зомби-процессов в заголовкеPlease open Telegram to view this post
VIEW IN TELEGRAM
👍12
Процедурная генерация воксельных рогаликовых уровней с использованием клеточных автоматов и алгоритмов работы с сеткой ячеек на Python. Описана начальная генерация уровней, их упорядочивание, прокладка путей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤🔥1
porcupine — это минималистичная библиотека для создания простых интерактивных CLI-приложений с возможностью подсветки, автодополнения и асинхронного ввода.
Основана на prompt_toolkit, но упрощает его использование.
from porcupine import interactive
@interactive
def shell():
while True:
cmd = input(">> ")
if cmd == "exit":
break
print(f"Вы ввели: {cmd}")
shell()
➕ Преимущества:
click
, rich
, prompt_toolkit
pip install porcupine
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40
Использование 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*/30 * * * * /path/to/swap_monitor.sh
🗣 Подходит для администраторов, DevOps-инженеров и всех, кто следит за стабильностью и производительностью системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥9👍4🔥1
Думал, собрать Linux на одноплатник — как установить Ubuntu. Но с китайским железом пришлось зарываться в Buildroot, дрова, ядро и боль. Делюсь опытом — чтобы ты не попал, как я.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
Как создаётся процесс? Что такое сигналы? И много чего ещё надо знать и для работы и для собесов. Тут прошлись по фундаменту процессов.
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
Мониторинг активных подключений помогает выявлять неожиданные сетевые активности, открытые порты, потенциальные утечки или вредоносную активность. Ниже — полезный набор команд для анализа сетевых соединений и сокетов.
# Показать все открытые 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
пригодится на старых системахPlease open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8👍5
Разбираемся, как доставлять товары не только физически, но и по запросу в поиске. Собираем e-com MVP, дообучаем E5, меряем качество, сравниваем с BM25. Ищем, где поиск буксует.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥2
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
➕ Преимущества:
pip install icontract
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁24🔥6👍4
Со временем в системе могут накапливаться неиспользуемые пакеты, зависимости и устаревшие ядра. Этот скрипт помогает безопасно очищать такие остатки, экономя место и поддерживая порядок в системе.
#!/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
очищает только устаревшие архивы, которые уже недоступны в репозиториях0 4 * * 0 /path/to/apt_cleanup.sh
🗣 Отлично подходит для серверов и рабочих машин, где важно держать систему в чистоте без ручной рутины.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7👍5
Разобрал, как работают компоненты журналирования в Linux, собрал схему для быстрой диагностики. Объясняю, кто с кем дружит, где бутылочные горлышки и зачем это знать безопаснику.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6👍3
Настолько шикарного дистрибутива я давно не видел, и я покажу чем он так харош в этом видосе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3