/usr/bin
4.95K subscribers
202 photos
987 links
Канал для пользователей и администраторов Linux-систем: управление, инфраструктура, технические детали, новости и прочее.

Реклама и цены: @gals_ad_bot
Вопросы: @antoniusfirst

@monitorim_it — канал о мониторинге ИТ
Download Telegram
PatchMon

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

PatchMon — open-source-проект для учёта пакетов и управления обновлениями на серверах. В одном интерфейсе можно посмотреть установленные версии, доступные обновления, подключённые репозитории и состояние хостов.

На машины устанавливается агент, который сам подключается к серверу PatchMon. Открывать входящие порты на наблюдаемых хостах для его работы не требуется. Поддерживаются apt, dnf, yum, apk, pacman и FreeBSD pkg.

С обновлениями тоже есть чем управлять: сначала посмотреть план изменений через dry-run, затем одобрить запуск и назначить окно обслуживания. Можно выбирать отдельные пакеты, наблюдать за выполнением в браузере и потом поднять историю — что обновляли, кто согласовал и чем всё закончилось.

Дополнительно есть проверки через OpenSCAP и Docker Bench for Security, инвентаризация Docker, роли доступа и вход через OIDC. Развернуть у себя можно через Docker Compose, лицензия — AGPLv3.

В PatchMon можно собрать весь процесс обновления в одном месте: от списка отставших серверов до результата установки.

Репыч на Гитхаб

@usr_bin_linux
👍5🔥5❤3
Чем заменить MinIO?

Многие команды ищут альтернативу MinIO после изменений вокруг Community Edition. Но выбрать S3-совместимое хранилище по описанию на сайте сложно: одинаковые галочки в таблице возможностей ещё ничего не говорят о поведении системы под реальной нагрузкой.

Коллеги из РСХБ протестировали сразу три варианта — SeaweedFS, RustFS и российское решение «Закрома». Причём проверяли не только скорость чтения и записи, но и кластерную работу, заполнение диска, восстановление загрузки, удаление больших объектов, поддержку STS, шифрования, Object Lock и интеграцию с Keycloak.

В статье не пытаются назвать универсального победителя. SeaweedFS показывает сильные результаты на чтении и больших объёмах,

RustFS привлекает простотой миграции и скоростью, а «Закрома» — промышленной поддержкой и возможностью влиять на развитие продукта. Но у каждого варианта есть свои ограничения, которые важно учитывать до начала миграции.

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

Читать дальше на Хабре →

P.S. В комментах к статье рекомендуют посмотреть также на silo.

@usr_bin_linux
🔥7❤5⚡2
Перенос Docker-контейнера между двумя Linux-хостами

При смене Docker-хостов мы часто думаем: «Я копирую, перезапускаю — и всё». Но Docker-сервис — это не только образ: есть ещё тома, переменные окружения, порты, иногда база данных… и именно здесь всё ломается, если действовать слишком быстро.


В статье описано как убедиться в том, что все правильно перенесено →

@usr_bin_linux
🔥7👍3⚡2
This media is not supported in your browser
VIEW IN TELEGRAM
Логи Linux

В этом переводе разобраны типы логов, существующих в Linux и где их искать.

Читать →

@usr_bin_linux
🔥8👍1👎1
«У меня CSV-файл размером 10 ГБ и всего 512 МБ оперативной памяти» — вопрос на собеседовании, который поставил меня в тупик

Я проходил собеседование на позицию Java-разработчика. Всё шло хорошо — я ответил на вопросы по Spring Boot, микросервисам и даже решил несколько задач в стиле LeetCode.

Затем интервьюер откинулся назад и спросил:

«Представьте, что у вас есть очень большой файл — допустим, CSV размером 10 ГБ. При этом вычислительные ресурсы сильно ограничены — например, всего 512 МБ оперативной памяти и одно ядро процессора. Как бы вы обработали этот файл, чтобы выполнить предварительную обработку данных и сохранить их в другом формате?»

Я замер. Мысли в голове сменяли друг друга.


Продолжение читайте в статье →

@usr_bin_linux
👍7🔥5
📁 lf — быстрый файловый менеджер для терминала

lf расшифровывается как list files. Это минималистичный файловый менеджер на Go, ориентированный на управление с клавиатуры в стиле Vim.

Проект запускается из одного бинарного файла, не требует дополнительных зависимостей и экономно расходует память. Асинхронные файловые операции не блокируют интерфейс даже при копировании или перемещении больших объёмов данных.

Горячие клавиши, цвета и команды можно полностью настроить под себя, а недостающие функции — добавить с помощью обычных shell-команд. Клиент-серверная архитектура позволяет управлять несколькими запущенными экземплярами lf.

Работает в Linux, macOS, BSD и Windows. Особенно пригодится тем, кто проводит большую часть времени в терминале и предпочитает клавиатуру мыши.

Репыч на GitHub →

@usr_bin_linux
👍7🔥5❤2⚡1
🐧 Microsoft представила WSL 3.0 с поддержкой запуска Linux-контейнеров в Windows

Microsoft представила WSL 3.0: подсистема перешла на ядро Linux 6.18 и получила встроенный инструментарий WSL Containers для создания, сборки и запуска Linux-контейнеров.

Новая утилита wslc умеет управлять жизненным циклом контейнеров и образов, ограничивать потребление CPU и памяти, настраивать виртуальные сети и проброс портов, работать с VHD и предоставлять контейнерам доступ к GPU. Для автоматизации предусмотрен API для C++ и C#, а для разработки — интеграции с MSBuild, CMake, VS Code Dev Containers и Aspire.

Исходный код компонентов WSL опубликован на GitHub под лицензией MIT.

Читать подробности на Хабре →

@usr_bin_linux
🔥14👍4⚡2
Address already in use: как найти, кто занял порт, и почему он не всегда освобождается сразу

Сервис не запускается, потому что порт занят. Кажется, решение очевидно: найти PID и завершить процесс. Но иногда процесса уже нет, а порт всё ещё остаётся недоступен из-за состояния TIME_WAIT. В случае с Docker его может удерживать контейнер через docker-proxy.

В статье разбираются основные сценарии этой ошибки и способы диагностики в Linux, macOS и Windows: как найти владельца порта через ss, lsof, netstat или PowerShell, правильно остановить systemd-сервис либо контейнер и отличить живой процесс от TCP-соединения, ожидающего завершения.

Отдельная часть посвящена профилактике: SO_REUSEADDR, различиям его поведения в Linux и Windows, а также тому, почему его не следует путать с SO_REUSEPORT.

Читать дальше на Хабре →
👍6🔥4⚡3
⏱️ Почему Unix-время начинается с 1970 года и при чём здесь электрическая розетка

В первых версиях Unix время отсчитывалось не в секундах, а в шестидесятых долях секунды: системные часы PDP-11 получали импульсы от американской электросети с частотой 60 Гц. Такой 32-битный счётчик заканчивался всего за несколько лет, поэтому разработчики перешли на секунды и выбрали удобную точку отсчёта — 1 января 1970 года.

Но и это решение не вечно. 19 января 2038 года знаковый 32-битный счётчик переполнится и отправит уязвимые системы в декабрь 1901-го. Проблема касается не только старых компьютеров: она может скрываться в INT-полях баз данных, бинарных форматах, JavaScript-операциях, MySQL TIMESTAMP, файловых системах и прошивках устройств.

В статье — история Unix-времени, наглядные эксперименты с C, JavaScript и ext4, а также разбор того, где искать проблему 2038 года уже сейчас.

Читать дальше на Хабре →

@usr_bin_linux
🔥11👍3⚡1
🖥 NeoHtop — альтернатива htop с графическим интерфейсом

Кроссплатформенный системный монитор показывает процессы и загрузку CPU и памяти в реальном времени. Процессы можно сортировать, закреплять, завершать, а также фильтровать по имени, команде или PID — поддерживаются регулярные выражения и поиск сразу по нескольким условиям.

Утилита построена на Rust, Tauri и Svelte, работает в Linux, macOS и Windows, поддерживает светлую и тёмную темы. Для любителей терминала авторы также выпустили отдельный NeoHtop CLI с деревом процессов, графиками и фильтрами.

Репыч на Гитхаб

@usr_bin_linux
🔥8⚡3👍2
MinIO Is Deprecated: Best Alternatives for S3-Compatible Storage

Долгие годы MinIO считался стандартным выбором для развёртывания S3-совместимого хранилища в собственной инфраструктуре. После архивации upstream-репозитория и прекращения привычной модели лицензирования неплохо было бы задуматься о будущем своих инсталляций.

В статье разбираются три возможные альтернативы — Garage, RustFS и SeaweedFS — и объясняется, для каких архитектур и нагрузок подходит каждая из них.

Читать статью на Medium

@usr_bin_linux
🔥8👍2❤1
А что, если Kubernetes — это не готовая платформа, а только ядро?

В статье описан любопытный инженерный эксперимент: автор предлагает относиться к Kubernetes так же, как мы относимся к ядру Linux. Сам Kubernetes остаётся общей основой, а поверх него собираются специализированные дистрибутивы — для виртуализации, ИИ, промышленного оборудования, мониторинга или сетевых задач.

Чтобы проверить идею на практике, автор разработал kuberoot — аналог Buildroot для сборки дистрибутивов Kubernetes, а также пакетный менеджер kubepkg и репозиторий пакетов.

В результате получается единый загрузочный образ, включающий ядро Linux, минимальную неизменяемую ОС и Kubernetes. Без SSH, shell и привычного пакетного менеджера. Узлами, системными службами, дисками, обновлениями и резервными копиями можно управлять через Kubernetes API и kubectl. Обновления устанавливаются в неактивный слот, проверяются после перезагрузки и автоматически откатываются при проблемах.

Интересно, что на этом тулките собрали восемь очень разных систем: обычный кластер, маршрутизатор без контейнеров, гипервизор, платформу для LLM, промышленный узел реального времени и внешний кластер мониторинга.

Читать дальше на Хабре

@usr_bin_linux
🔥7⚡2👍2❤1
Когда один & ломает Ctrl+C

В статье разобран инженерный разбор ошибки, в которой Ctrl+C сначала выключал виртуальную машину, а после исправления перестал прерывать даже обычный sleep.

Автор прошел весь путь управляющего символа: хостовый терминал → Java → виртуальный UART → KVM → TTY-подсистема Linux → процесс. Виновником в итоге оказался не KVM и не обработка IRQ, а фоновый запуск BusyBox shell: процесс унаследовал игнорирование SIGINT.

Любопытный пример того, как диагностировать сложные проблемы на границах нескольких систем: проверять каждый слой отдельно и прямыми экспериментами исключать исправные участки цепочки.

Читать на Хабре

@usr_bin_linux
🔥8👍4⚡2
Как превратить Python-скрипт на VPS в нормальный сервис

nohup, screen и надежда на то, что скрипт никогда не упадёт, — не лучший вариант для эксплуатации. В этой статье рассказывается, как организовать запуск небольших Python-приложений средствами самого Linux — без Docker, Supervisor и отдельной системы мониторинга.

В статье разобраны:

🚀 запуск и автоматический перезапуск через systemd;

🚀 хранение секретов и ограничение прав процесса;

🚀 сбор и ротация логов с помощью journald;
уведомления о сбоях в Telegram вместе с фрагментом журнала;

🚀 запуск задач по расписанию через systemd timers вместо cron.

Читать на Хабре

@usr_bin_linux
🔥7👍3⚡2