Обновить
512K+

Системное администрирование *

Лишь бы юзер был доволен

619,82
Рейтинг
Сначала показывать
Порог рейтинга

Ребята, я сегодня релизнул cli-stash. Это TUI-утилита на Go + Bubble Tea для сохранения shell-команд в "избранном".

Пример использования cli-stash
Пример использования cli-stash

Она решает простую боль: сложные команды (docker, kubectl, ffmpeg) постоянно забываются, а копаться в history каждый раз это страдание.

Что умеет:

  • Сохраняет ваши команды в избранном

  • Возможность добавить из истории шелла

  • Нечеткий поиск

  • Сортировка по частоте использования

И самое крутое, что команда вставляется прямо в терминал. Таким образом вам не надо ничего копипастить: нашел → выбрал → enter → команда уже в cli.

# Установка в Linux
go install github.com/itcaat/cli-stash@latest

# Сборка из исходников
git clone https://github.com/itcaat/cli-stash.git
cd cli-stash
go build -o cli-stash .
sudo mv cli-stash /usr/local/bin/

В macOS поставить изян brew install itcaat/tap/cli-stash

Исходники и инструкция по использованию есть на github.

_________________

Хватит читать DevOps-статьи от людей без продакшена. Я рассказываю про свой реальный опыт в своем Telegram-канале DevOps Brain 🧠 ↩

Теги:
Всего голосов 9: ↑8 и ↓1+8
Комментарии10

Пользователи постоянно жаловались, что часы на микроволновке в офисе никогда не показывают правильное время, потому что хозяину устройства было лень устанавливать их вручную. Поэтому он сделал в cron задачу по запуску скрипта un**ck-microwave.sh, которая ненадолго отключает питание каждые сутки в полночь.

Теги:
Всего голосов 11: ↑11 и ↓0+14
Комментарии25

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

Периодически в разные частях документации или статьях про Docker вы будете встречать "манифесты". Обычно это звучит как что-то второстепенное: мол, есть какая-то мета-информация, по которой Docker собирает образ из слоёв.

Но на деле это одна из ключевых деталей, которая отвечает за то, что контейнеры:

  • воспроизводимы

  • одинаковые на разных машинах

  • и не превращаются в "ну у меня работало".

Я попытаюсь все описать максимально просто.

Docker Manifest - это JSON-документ, который описывает образ. Можно представить его как схему или инструкцию, по которой Docker понимает:

  • какие слои относятся к образу

  • какие контрольные суммы должны быть у каждого слоя

  • в каком порядке их нужно использовать

  • для какой ОС и архитектуры этот образ подходит

И важный момент: когда ты делаешь docker pull, Docker сначала получает манифест, а уже потом начинает скачивать слои.

Как посмотреть манифест самому: docker manifest inspect nginx:latest.

Тут можно заметить, что один тег (nginx:latest) может ссылаться сразу на несколько вариантов образа - например под amd64 и arm64. Это как раз история про multi-arch. Иногда под словом manifest имеют в виду не сам образ, а manifest list (index). Это как меню: Docker смотрит на твою платформу и выбирает подходящий вариант (amd64/arm64).

Каждый слой Docker-образа имеет SHA256-хеш, который вычисляется из его содержимого.

Логика максимально простая:

  • поменялся файл

  • поменялось содержимое

  • поменялся хеш

  • значит получился другой слой

По сути это очень похоже на философию Git: всё завязано на содержимое, а не на "имя файла".

Docker Registry использует Content Addressable Storage - то есть хранит и раздаёт данные не по названию, а по их хешам.

Что происходит при push / pull?

Если упростить до понятной схемы, то процесс примерно такой:

  • клиент сначала отправляет/получает манифест

  • registry проверяет хеши и наличие слоёв

  • передаются только те слои, которых ещё нет

  • каждый слой проверяется по SHA256

То есть никакой лишней передачи данных и никаких "примерно совпало".

Комбинация манифестов и хешей даёт сразу несколько сильных преимуществ:

  • Безопасность - слой нельзя незаметно подменить

  • Экономия места - одинаковые слои не хранятся по сто раз

  • Целостность - скачанное гарантированно равно загруженному

  • Версионирование - образ это конкретная комбинация слоёв, а не “что-то похожее”

Именно поэтому условный nginx:latest на dev и на prod - это реально один и тот же образ, а не "почти такой же, но чуть другой". Ладно, давайте будем более дотошными. На самом деле нет - использовать latest плохая практика. За время пока образ приехал,- там уже могут быть разные образы.

Как минимум используйте конкретный тег, а еще лучше даже sha256 docker pull nginx@sha256:...

_________________

Хватит читать DevOps-статьи от людей без продакшена. Я рассказываю про свой реальный опыт в своем Telegram-канале DevOps Brain 🧠 ↩

Теги:
Всего голосов 4: ↑2 и ↓20
Комментарии0

Хочу поделиться записью моего последнего вебинара - в преддверии следующего. Буду рад всем, кто посмотрит.

📘 Часть 1. Теория и философия Digital Q.DataBase 
Разбираем фундаментальные вопросы: 
• Как Digital Q.DataBase объединяет три SQL-диалекта
(T-SQL, PL/SQL, PL/pgSQL) в одном ядре? 
• Как продукт обеспечивает простоту и высокую скорость миграции? 
• Что входит в базовый состав коробочной версии? 

🛠 Часть 2. Практика: установка и работа с диалектами 
• скачиваем и устанавливаем Digital Q.DataBase, 
• получаем документацию, 
• выполняем практику по SQL-диалектам на демостендах. 

Да, это тот самый момент, когда теория превращается в конкретику - и вы сами видите, как работает гибридная архитектура продукта. 

📎 Полезные ссылки 
🔹 Бесплатное получение дистрибутива: https://database.diasoft.ru
🔹
 Документация: доступна внутри дистрибутива 
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

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

Речь про vi...😱 

Как выйти из vi? Никак. Это не редактор, это пожизненный контракт.

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

Если ты случайно запустил vi на проде — проще выкинуть сервер, чем найти правильную комбинацию клавиш.


Это тот самый редактор, который в обычной жизни можно спокойно не трогать годами… А потом ты оказываешься в air-gap, где:

  • нет vscode

  • нет nano

  • нет mc

  • иногда даже less нет и кажется, что у тебя есть только vi и судьба

И вот ты открываешь конфиг… и мозг такой: эээээ мы не умеем, всё, до свидания.

Давай разберёмся, как перестать бояться vi и научиться выживать с ним спокойно.

Почему vi вызывает ступор? Потому что он не работает как обычные редакторы. Ты нажимаешь клавиши - а текст не печатается. Пытаешься выйти - не выходит. И где-то рядом уже открывается вкладка “как выйти из vi”, но интернет… в другой реальности.

Главное, что нужно понять - в vi есть несколько режимов:

  1. Normal mode - это режим команд и перемещения. Тут ты не печатаешь текст, а управляешь редактором.

  2. Insert mode - это режим, где можно реально редактировать и вводить текст.

  3. Command mode (через :) - cохранение, выход, всякие служебные команды и тд

Минимальный набор клавиш, чтобы выжить:

  • Войти в редактирование -> i, a, o

  • Вернуться обратно в команды -> Esc

  • Сохранить файл -> :w

  • Выйти -> :q

  • Сохранить и выйти -> :wq

  • Выйти без сохранения -> :q!

Полезные команды, которые реально пригодятся:

  • удалить строку -> dd

  • вставить строку ниже -> o

  • отменить действие -> u

  • повторить последнее действие -> .

  • поиск: / и дальше текст который ищем

Пример: быстро поправить конфиг и уйти живым

vi /etc/hostname

Дальше всё по шагам:

  1. нажми i и внеси правки

  2. нажми Esc

  3. введи :wq

  4. готово - конфиг сохранён, ты победил

А если ты хочешь владеть vi как ниндзя, то вот тебе Vim Cheat Sheet https://vim.rtorr.com/

_________________

Хватит читать DevOps-статьи от людей без продакшена. Я рассказываю про свой реальный опыт в своем Telegram-канале DevOps Brain 🧠 ↩

Теги:
Всего голосов 8: ↑7 и ↓1+7
Комментарии14

Представлен открытый проект эмулятор Time Station Emulator, который может превратить практически любой смартфон или планшет в низкочастотный радиопередатчик, транслирующий сигнал времени и синхронизировать большинство радиоуправляемых («атомных») часов и наручных часов.

Решение имеет совместимость с большинством радиоуправляемых часов: эмулирует пять действующих радиостанций передачи сигналов времени (BPC, DCF77, JJY, MSF и WWVB). Сетевое время: вычисляет текущее время из сети с помощью алгоритма, подобного NTP. Независимость от местоположения: поддерживает применение смещения к передаваемому времени ±24 часа от текущего времени. Поддерживает летнее/зимнее время (BST/CEST/DST): передаёт информацию о переходе на летнее время для DCF77, MSF и WWVB. Поддерживает високосные секунды: передаёт смещение DUT1 для MSF и WWVB. Работает на стороне клиента, в браузере: полностью в браузере; не требует установки, регистрации и сбора данных.

Теги:
Всего голосов 4: ↑2 и ↓2+2
Комментарии1

Открытый проект CompactGUI оптимизирует дисковое пространство, занятое играми. Степень сжатия — до 60%. Это не архивация — игры не запаковываются в ZIP и RAR, тут совершенно другой метод. Игры продолжат работать как обычно — ярлыки и папки будут на месте. Если игра обновилась в Steam, то решение само досожмёт обновление. Проект использует встроенные алгоритмы Windows.

Теги:
Всего голосов 4: ↑1 и ↓30
Комментарии0

Представлен легковесный инструмент Crawlee, который может спарсить информацию с сайтов, соцсетей и других ресурсов, а также обходит защиту от ботов. Может скачать аудио, видео, изображения, метаданные, документы и прочие нужные файлы. Скрипты решения написаны на Python, имитирует поведение человека на сайтах, в соцсетях и других ресурсах. Инструмент поддерживает мультизадачность и не теряет при этом скорость. Можно собирать несколько видов данных одновременно. Работает полностью локально.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Открытый проект Mirror ищет скрытые процессы на macOS и следит за тем, чтобы никакой вредный код не потреблял память ПК. Умеет находить скрытые процессы, убивает процессы за один клик, включая даже «невидимые» процессы.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Представлен бесплатный открытый проект HeartMuLa, который генерирует музыку на уровне платных ИИ-студий. Это полноценная музыкальная «студия всё в одном»: можно создавать треки по описанию, делать песни в стиле любимых артистов и работать с готовым аудио.

Что умеет HeartMuLa:

  • пишет тексты песен через встроенный чат-бот;

  • генерирует треки с вокалом и текстом длиннее 4 минут;

  • можно загрузить любой аудиофайл, и ИИ перенесёт его вайб и стиль в новый трек;

  • работает даже на слабом железе: локальная версия требует всего ~3 ГБ видеопамяти;

  • простой и понятный интерфейс. Фактически: бесплатный аналог Suno, но без подписок, ограничений и облака;

  • можно ставить локально и делать музыку прямо на своём ПК.

Теги:
Всего голосов 4: ↑2 и ↓2+2
Комментарии6

Открытый загрузчик Telegram Files позволяет скачать файлы из Telegram даже из закрытых чатов, включая аудио, видео, картинки, голосовые, гифки, документы и прочие файлы. Поддерживает сразу несколько аккаунтов в Telegram. Можно скачивать файлы из разных чатов одновременно и вообще не терять в скорости. Поддерживает превью файлов во время скачивания.Работает локально, не нарушает политику мессенджера.

Теги:
Всего голосов 3: ↑2 и ↓1+2
Комментарии0

Обзор и практическое использование Iptables

Iptables — базовый инструмент для админов и DevOps-инженеров, которым нужно быстро и прозрачно управлять сетевым трафиком на Linux-сервере: что пропускать, что блокировать и куда перенаправлять.

Как устроен Iptables, как поставить утилиту на Ubuntu/Debian и CentOS, синтаксис команд и набор самых ходовых сценариев — в базе знаний Рег.облака.

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии1

Представлен открытый проект Handy, который освобождает руки пользователя и превращает микрофон в клавиатуру. Работает в Word, Telegram и даже в VS Code. Можно диктовать тексты в любом формате, приложении и любым голосом. Под капотом: Whisper от OpenAI или Parakeet от Nvidia. Все нейронки понимают русский. Проблем со вводом не будет. Работает полностью локально — все вычисления идут только на ПК. Сервис отсекает шумы, помехи, чихи и шмыганья — на выходе получается чистый звук, который идёт в такой же выверенный текст. Работает на macOS, Windows и Linux. Простой и понятный интерфейс. Разработчик регулярно обновляет решение.

Теги:
Всего голосов 8: ↑7 и ↓1+6
Комментарии6

Ближайшие события

Представлен открытый проект MatrixDefender-4.2, который помогает убрать майнеры на ПК или ноутбуке, а также различные сетевые угрозы и прочий мусор. Сервис написан на Python, устанавливается за пару кликов. Проект находит и удаляет майнеры, лечит от LimeRAT, QuasarRAT и другие угрозы, блокирует С2-сервервы, которые управляют атаками на ПК.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Представлен открытый проект EyeOfWeb. Это локальный OSINT-поисковик с точных распознаванием лиц на базе нейросети InsightFace, которая сканирует черты лица с фото и сравнивает с тысячами изображений в сети. Источники поиска можно задать вручную: сайты, форумы, соцсети, тематические порталы и другие ресурсы. Также можно добавить поиск по метаданным фото. Сервис помогает устроить даже мультипоиск нескольких людей с фото. Для работы нужно 8 ГБ памяти. 

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Представлен проект CapacityTester — утилита с графическим интерфейсом для выявления реальной ёмкости носителей информации. Решение кроссплатформенное, написано на C++ и создано с использованием фреймворка Qt.

Есть два режима работы CapacityTester:

  1. Аналогичный используемому при работе консольных утилит f3write/f3read (пакет f3 — Fight Flash Fraud), когда свободное место на носителе (с файловой системой) заполняется специально сформированными файлами. На носителях большого объёма требуется длительное время для проверки.

  2. Деструктивный режим, когда данные пишутся напрямую на носитель, и фейковая ёмкость может быть выявлена быстрее (у f3 тоже, вроде бы, есть аналогичный режим, но это не точно).

Помимо авторских сборок, у программы есть пакет в репозиториях Altlinux и PKGBUILD в AUR.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Представлен открытый проект Clipy (улучшенный аналог проектов cliply.space, yt-dlp CLI и 4K Video Downloader), который позволяет скачивать ролики с Youtube и сразу редактировать без потери качества. Решение качает контент в оригинальном качестве без перекодирования. Проект имеет встроенный видеоредактор — можно быстро обрезать, разделить видос или склеить. Всё работает локально на ПК. Полностью бесплатно и с открытым исходным кодом и удобным интерфейсом.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Представлен открытый проект Mimesis: The Fake Data Generator для генерации фейковых данный для проектов, пентеста, хакинга или анонимности в сети, включая ФИО, email, адреса проживания, телефоны, локации, смена стран и адаптирование данных в соответствие с задачами. Полезно также для создания файлов JSON и XML произвольной структуры, а также анонимизации данных. Устанавливается за один клик, имеет простой и понятный интерфейс.

Теги:
Рейтинг0
Комментарии0

Btop.

Интерактивный монитор ресурсов — полезный инструмент.

В мире текстовых терминалов для этих задач часто выбирают Htop. Он предельно прост, работает в режиме Text-based User Interface (TUI) и есть в репозиториях всех популярных ОС из семейства Unix-like.

Htop позволяет наблюдать только за CPU, памятью, процессами и операциями ввода-вывода. И это его минус — больше ничего просто нет…

Более широким профилем обладает Btop. Он имеет всё тот же форм-фактор интерактивного TUI и уже есть в большом количестве стандартных репозиториев.

Btop позволяет, окромя возможностей Htop, следить за температурой CPU, получать детализированную информацию с графиками по процессу, точкам монтирования и сетевым интерфейсам. Кроме этого, он поддерживает темы и настройку расположения панелей по вкусу прямо на лету.

В стандартных репозиториях Debian он есть начиная с Bookworm (12). Присутствует и backport для Bullseye (11).

Установка простая:

sudo apt install btop

Из тонкостей. Рекомендую снизить время обновления метрик с 2000мс до 1000мс при наблюдении за точками монтирования. Тогда можно получать информацию по операциям ввода-вывода в секунду, а не делить полученные значения на два в уме.

Теги:
Всего голосов 7: ↑7 и ↓0+7
Комментарии3

Kotlin и Hyperskill: как я искал курс и что получил в итоге.

Когда я решил изучать Kotlin, ожидал, что найти хороший курс будет просто: язык популярный, используется в Android и бэкенде, вокруг много материалов. Искал менторов и упирался в людей которые знаю java и вроде как используют в работе Kotlin. Это одновременно пугало и заинтересовывало, я решил поступить как мне казалось правильным, найти готовый курс  — особенно если хочется не “смотреть видео”, а именно учиться через практику и задачи.

Я перепробовал разные форматы обучения (платные и бесплатные), поэтому в этот раз подход был простой: найти платформу, где есть структурированная программа и много практики. В итоге я добрался до Hyperskill (hyperskill.org). Это не реклама — просто личный опыт, кому-то он может сэкономить время.

Как я пришёл к ресурсу.

Изначально искал курсы по Kotlin на привычных площадках. На Stepik в тот момент не нашёл того, что мне подходило по структуре (возможно, сейчас ситуация лучше). Видео-курсы на крупных “известных сайтах” сознательно не рассматривал: мне удобнее формат “прочитал → сделал → получил проверку”.

Дальше — обычный путь через поисковик и сравнение нескольких платформ. Из того, что выглядело цельно и практично, больше всего зацепил Hyperskill. Отдельно сыграло роль то, что платформа связана с JetBra…. (то есть ребята явно понимают, как устроена экосистема вокруг Kotlin и IDE).После регистрации быстро становится понятно: платформа активно ведёт к подписке.Раньше в сети встречались статьи про возможность оформить бесплатную подписку на полгода, но это устаревшая информация — сейчас такой опции нет (по крайней мере, в том виде, в каком её описывают старые гайды).

При этом у Hyperskill есть бесплатный режим, и я проходил курс именно так.

Что я проходил: Introduction to Kotlin.

На платформе несколько треков по Kotlin, я начал с Introduction to Kotlin. По ощущениям, это “введение с практикой”:

  • около 9 учебных проектов

  • порядка 60–70 тем

  • внутри тем — задачи/тренажёры с автоматической проверкой

В целом структура понравилась: материал подаётся дозировано, и почти сразу закрепляется практикой. Похожая на Степик.

Система “кристаллов” и лимиты.

Самая спорная часть бесплатного режима — ограничения на попытки.

У Hyperskill есть внутренняя валюта (“кристаллы”): ошибаешься в заданиях — кристаллы списываются. Когда кристаллы заканчиваются, обучение может блокироваться на 12–24 часа. Да, кристаллы можно зарабатывать активностью и выполнением некоторых задач, но при активном обучении и регулярных ошибках (что нормально) этого может не хватать.

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

Проекты: что внутри и зачем это полезно.

Сильная сторона Hyperskill — проекты. Они не выглядят как “игрушки ради галочки”, а позволяют постепенно потрогать основные конструкции языка.

Из того, что запомнилось:

  • “Сапёр”

  • “Крестики-нолики”

  • “Чат-бот”

  • “Кофемашина”

Например, в проекте “кофемашина” уже нормально используются циклы, классы и базовые элементы ООП. В таком формате проще понять, “зачем оно нужно”, чем на изолированных задачках.

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

Проверка решений: не всегда понятно, почему “не принято”

Ещё один недостаток — качество обратной связи в тестах. Иногда тесты “падают” так, что ты видишь только факт ошибки, но не понимаешь причину: что именно ожидалось, на каком кейсе сломалось, где расхождение.Часть проектов проверяется через IntelliJ IDEA, и здесь иногда всплывают технические нюансы: несовпадение версий, необходимость обновить IDE или компилятор, странные падения на конкретном проекте.

Хороший момент: поддержка отвечает. По моему опыту, вопросы не игнорируют, и проблемы реально разбирают.

Итоги:

  • бесплатный режим может раздражать лимитами на ошибки (кристаллы и блокировки)

  • часть контента (включая проекты) закрыта подпиской

  • обратная связь тестов местами недостаточно информативная

    Если готовы, то вперед!

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0