Admin Guides | Сисадмин
11.4K subscribers
1.25K photos
20 videos
34 files
559 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
Вышел openHalo — прокси для миграции с MySQL на PostgreSQL без боли

В начале апреля вышел проект openHalo — открытый инструмент, помогающий мигрировать приложения с MySQL на PostgreSQL почти без переписывания кода.

Это прокси-решение, написанное на C и PLpgSQL, распространяется под GPLv3 и уже доступно на GitHub.

Как работает openHalo:
• Перехватывает SQL-запросы, написанные под MySQL
• Преобразует их под синтаксис PostgreSQL
• Отдаёт ответы обратно в формате, совместимом с MySQL-клиентами

Благодаря этому сохраняется поддержка существующих драйверов, утилит и привычного инструментария MySQL — от mysqldump до ORM-библиотек вроде SQLAlchemy.

Плюсы подхода:
• Не нужно массово переписывать SQL-запросы
• Быстрый переход на PostgreSQL с минимальными рисками
• Поддержка как SQL-диалекта, так и сетевого протокола MySQL
• Можно запускать в проде как прослойку между приложением и новой СУБД
👍5🔥1
Запускаем цикл вебинаров и открытых демонстраций – «Basisный интенсив с Merlion»!

В течение года мы разберем функциональные особенности экосистемы продуктов ведущего российского разработчика решений для оказания облачных услуг, платформы динамической инфраструктуры и виртуализации – Basis:

Basis Dynamix Standard – гибкая платформа управления виртуализацией для контроля гипервизоров и виртуальных ЦОД на базе виртуальных машин.

Basis Dynamix Enterprise – высокопроизводительная платформа на базе динамической инфраструктуры для управления виртуальными серверами и контейнерами.

Basis Workplace – ПО для создания инфраструктуры виртуальных рабочих столов с возможностью выбора сценария использования.

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

Регистрация (https://tglink.io/90473d4f6610?erid=2W5zFJHdLmW) осуществляется 1 раз – и вы получаете доступ ко всей серии вебинаров.

#реклама
О рекламодателе
👍2
Автообновление контейнеров по Git push

Автоматизация деплоя — один из способов сэкономить часы жизни и избавиться от рутины.

Если вы используете GitLab и Docker, можно настроить простую, но эффективную схему: пушим код — запускается GitLab CI, собирается и пушится образ — Watchtower на проде обновляет контейнер. Всё это без единого ручного действия.

1️⃣GitLab CI собирает и пушит Docker-образ

Пример .gitlab-ci.yml:

stages:
- build
- deploy

variables:
IMAGE_TAG: registry.gitlab.com/yourgroup/yourapp:latest

build:
stage: build
script:
- docker build -t $IMAGE_TAG .
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
- docker push $IMAGE_TAG


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

IMAGE_TAG: registry.gitlab.com/yourgroup/yourapp:$CI_COMMIT_SHORT_SHA


2️⃣ Watchtower на сервере следит за обновлениями

Запускаем Watchtower с привязкой к сокету Docker:

docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-e WATCHTOWER_CLEANUP=true \
-e WATCHTOWER_POLL_INTERVAL=60 \
containrrr/watchtower


Если у вас приватный реестр, авторизуйтесь на сервере:

docker login registry.gitlab.com


Можно указать конкретный контейнер, за которым следить:

containrrr/watchtower yourapp_container


3️⃣ Запускаем основной контейнер из latest

Контейнер должен быть собран из обновляемого тега:

docker run -d \
--name yourapp_container \
yourgroup/yourapp:latest


При обновлении latest Watchtower автоматически остановит и перезапустит контейнер с новым образом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
Ускорение cold-start для systemd-сервисов

Если при загрузке системы или запуске демонов вы замечаете задержки, systemd даёт немало рычагов, чтобы cold-start прошёл быстрее.

Особенно это критично для сервисов, чувствительных к времени реакции (например, прокси, VPN, API-шлюзы).


Вот основные параметры, с которыми стоит поиграться:

IOSchedulingClass и IOSchedulingPriority
Позволяют задать класс и приоритет доступа к диску.

Пример:

[Service]
IOSchedulingClass=best-effort
IOSchedulingPriority=2


Если сервис работает с базами или логами — можно установить класс realtime или поднять приоритет ближе к 0 (чем ниже — тем выше приоритет).

CPUSchedulingPolicy и CPUSchedulingPriority
Контроль приоритетов на уровне CPU-шедулера.
Для критичных задач — SCHED_FIFO или SCHED_RR.

[Service]
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=50


StartLimitBurst и StartLimitInterval
Позволяют контролировать поведение при частых перезапусках. Иногда systemd из-за быстрых рестартов просто «глушит» сервис.

[Unit]
StartLimitBurst=10
StartLimitIntervalSec=30


Можно дать больше попыток на старте — особенно если сервис зависит от сети или сторонних демонов.

TimeoutStartSec
Если cold-start занимает время, а systemd слишком рано считает запуск проваленным — увеличьте таймаут:

[Service]
TimeoutStartSec=60s


ExecStartPre и ReadyNotify
Иногда лучше запускать предварительную инициализацию отдельно, чтобы основная служба стартовала уже с готовым окружением.

[Service]
ExecStartPre=/usr/local/bin/warmup.sh
Type=notify


Nice и OOMScoreAdjust
Если нужно приоритетное планирование и защита от OOM killer’а:

[Service]
Nice=-5
OOMScoreAdjust=-500
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4
😁19👏4🤔4👍1🥱1
lshw – список железных компонентов сервера

Команда lshw помогает получить детальную информацию о “железе” сервера: процессоре, памяти, накопителях, сетевых интерфейсах, USB и аудио-устройствах.

Установка lshw

Если команда не исполняется, установите пакет:

CentOS

sudo yum install lshw


Debian/Ubuntu

sudo apt install lshw


Вывод информации о компонентах

Чтобы получить короткий список оборудования, используйте:

lshw -short


Пример вывода:

H/W path          Device       Class      Description
=====================================================
system Virtual Machine
/0 bus Virtual Machine
/0/5 processor Intel(R) Core(TM) i3-6100T CPU @ 3.20GHz
/0/51 memory 4GiB System Memory
/0/1 scsi2 storage
/0/1/0.0.0 /dev/sda disk 160GB SCSI Disk
/0/1/0.0.0/1 /dev/sda1 volume 500MiB EXT4 volume
/1 eth0 network Ethernet interface


Другие полезные команды

Вывод в развернутом виде:

lshw


Сохранение в файл:

lshw > hardware_info.txt


Информация только о CPU:

lshw -C CPU
👍151
⚡️ Python теперь в Telegram!

Ребята сделали крутейший канал, где на простых картинках и понятном языке обучают Python, делятся полезными фишками и инструментами

Подписывайтесь: @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
👌16😁9👍2
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает OverlayFS в Linux и зачем он нужен?

Ответ: OverlayFS — это объединяющая файловая система, которая накладывает один каталог (upperdir) на другой (lowerdir), создавая виртуальный слой. Она позволяет изменять содержимое без модификации оригинальных данных, что особенно важно в контейнеризации.

Основные возможности:
Наложение слоев: изменения записываются только в upperdir, а чтение происходит сначала из него, затем из lowerdir.
Эффективность: экономия дискового пространства за счёт разделения слоёв и уменьшения количества копий.
Применение: используется в Docker для организации copy-on-write хранилищ, а также в live-системах и сборках образов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
Готовитесь к собеседованию в IT-компанию? 👀

Скачайте курс-гайд «Алгоритмы: roadmap для работы и собеседований» бесплатно.

👉 Готовый план подготовки: алгоритмы, вопросы и советы от эксперта, практика и доп. литература.

Скачать курс-гайд бесплатно через бота ➡️ по ссылке
👍1
Изоляция окружения без root: Mount namespaces и unshare

Нужна песочница без Docker и без прав root?


Используя Linux namespaces и unshare, можно запускать процессы в изолированных файловых средах — удобно для тестов, CI, экспериментов с пакетами или конфигурациями.

Что такое mount namespace?
Это изоляция файловой системы: процесс видит только свои монтирования и не влияет на другие процессы.

Даже без root-прав можно поднять временное окружение и работать «внутри», не затрагивая хост-систему.

Пример:

mkdir ~/sandbox
cp /bin/bash ~/sandbox/
unshare --mount --uts --ipc --net --pid --fork --user --map-root-user bash


Теперь вы внутри своего namespace, но пока общая файловая система. Добавим chroot-подобную изоляцию:

mount --bind ~/sandbox ~/sandbox
cd ~/sandbox
pivot_root . .
exec chroot . /bash


Что это даёт?
• Тест конфигураций без риска для системы
• Мини-среда без виртуализации
• Контейнеризация «на коленке» без Docker
• Повышенная безопасность: ограничение доступа к файловой системе
👍142🤔1
21 курс по цене одного с подпиской на курсы Слёрма.

Kubernetes, Docker, Postgres, Gitlab, Terraform, Golang, Python и многое другое.

Экономия до 90%.

Гибкий график, обратная связь, поддержка от спикеров – всё, что нужно для интенсивного и эффективного обучения.

Выбрать тариф и узнать подробности ➡️ по ссылке
👍1
HIGGS — новый open-source метод сжатия LLM от Яндекса и научных партнёров

Исследователи из Yandex Research, ВШЭ, MIT, KAUST и ISTA представили HIGGS — способ квантизации больших языковых моделей без потери качества.

Метод уже доказал свою эффективность на DeepSeek R1 (671B параметров) и Llama 4 Maverick (400B), позволяя запускать их на более доступных устройствах.

Что делает HIGGS:
Уменьшает размер модели без дообучения
Работает даже без доступа к обучающим данным
Лучше GPTQ и AWQ в диапазоне 2–4 бит
Уже проверен на Llama 3, Llama 4, Qwen2.5

Доступно на:
• GitHub
• Hugging Face
• arXiv (научная статья принята на NAACL 2025)

HIGGS делает LLM доступнее не только для корпораций, но и для независимых разработчиков и лабораторий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
tmpfs и zram: ускоряем систему или забиваем оперативку впустую?

RAM-диски — это круто, пока они не начинают мешать.

tmpfs и zram дают разные преимущества, и использовать их надо с пониманием.

tmpfs: максимально быстро, но без компромиссов

Пишет напрямую в оперативную память. Отлично подходит для:

– /tmp на десктопе
– Сборок в CI
– Хранения промежуточных логов, сокетов, lock-файлов

Монтирование:

mount -t tmpfs -o size=256M tmpfs /tmpfs


Или прописать в fstab:

tmpfs /var/cache/build tmpfs size=1G,mode=1777 0 0


Ошибка №1: tmpfs в /tmp на 512M в системе с 1ГБ RAM — и скрипт сборки падает с ENOSPC. Лучше:

mount -t tmpfs -o size=50% tmpfs /tmp


zram: компромиссы — компрессией

Создаёт блочное устройство в RAM с on-the-fly сжатием. Применяется:

– Как swap на слабых системах
– Для кэша journald
– Для контейнеров в Kubernetes с ограниченной RAM

Пример настройки swap:

modprobe zram
echo lz4 > /sys/block/zram0/comp_algorithm
echo 1G > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0


Плюсы:
– Можно выжать до 2–2.5x RAM (особенно с текстовыми данными)
– Не убивает SSD
– Работает с приоритетом (можно сделать swapfile + zram)

Ошибка №2: Использовать zram как swap на сервере с heavy-load БД. Это не замена оперативке, это аварийный буфер.

Компрессия имеет цену

Для более точной настройки swap с zram — используйте systemd-zram-generator или zram-tools.

Пример конфига для zram-generator.conf:

[zram0]
zram-size = ram / 3
compression-algorithm = zstd
swap-priority = 100
👍11