ServerAdmin.ru
32.4K subscribers
1.18K photos
73 videos
29 files
3.19K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
У меня основной инструмент взаимодействия с ИИ - агент OpenCode. Мне в целом привычна и удобна работа в консоли, особенно для решения конкретных прикладных задач. Я тут же могу проверить решение - запустить, подключиться к другому серверу и т.д. Но иногда не хватает веб интерфейса для некоторых задач. У opencode есть свой встроенный веб интерфейс, но он мне совершенно не понравился. Неудобный.

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

Что понравилось в Coddy и что он умеет:

▪️Простой инструмент из одного бинарника, конфига и папок со скилами, сессиями, кроном и т.д. Его легко запускать, переносить, обновлять.
▪️Три режима работы: ACP (взаимодействие агентов), HTTP (работаете в браузере), Gateway (взаимодействие через Telegram или другой мессенджер). Все три режима используют единое хранилище сессий. Например, в браузере можно посмотреть, что вы делали в других сессиях.
▪️Куча основных инструментов уже встроены: чтение файлов, запуск команд, ssh соединения, поиск через поисковики, анализ сайтов и т.д.
▪️Простой и лаконичный веб интерфейс. Ничего лишнего.
▪️Можно подключать все популярные llm, в том числе локальные.
▪️Нормально работает с локальными моделями, так как по умолчанию почти не расходует контекст на свою работу.
▪️Вся функциональная современная база есть: rules, sheduler, skills, mcp, long-term memory между сессиями или глобальная.
- По умолчанию всегда спрашивает, прежде чем что-то выполнять.

Что не понравилось:

◽️Не показывает статистику по генерации ответа. Не видно, какая была скорость генерации токенов для локальных моделей.
◽️Добавлять настройки через веб интерфейс неудобно.
◽️Результат работы планировщика можно посмотреть только в консоли, либо я не понял, где и как искать результаты работы в веб интерфейсе.
◽️Запросы на выполнение той или иной команды иногда почему-то выводятся где-то вверху в чате, хотя сам чат уже уехал вниз. Похоже на какой-то баг.

В общем, мне этот агент показался удобным, чтобы в одном месте собрать всю работу с llm. Поставил coddy на постоянку, буду использовать вместе с opencode, первого для работы в браузере, второго - в консоли.

На картинках мои примеры работы с локальной моделькой omnicoder-9b. Я её долго мучал. Она шустро у меня работает и не сказать, что сильно тупая. Если аккуратно подойти к настройке, то многие админские задачи сможет выполнять. Например, проверять регулярно какие-то логи с хостов и формировать отчёт.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#ai
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64👎5
Небольшой практический совет для тех, кто собирает или планирует собирать логи Docker контейнеров в Loki. У меня был подробный цикл заметок по этой теме:

1️⃣ Установка, настройка Loki, сбор логов Docker контейнеров
2️⃣ Сбор системных логов Linux (syslog и journald) с помощью Alloy
3️⃣ Сбор логов Postfix и пример создания дашборда для них
4️⃣ Сбор журналов Windows.
5️⃣ Приём логов Syslog с помощью Vector
6️⃣ Отключение сбора статистки в Alloy

Также есть общая статья со всеми этими темами. Мне нравится эта система. Я её сейчас постоянно использую. Скорее всего больше не буду настраивать ELK, так как для моих задач мне Loki хватает, хотя она и менее функциональная, но проще в настройке и меньше требует ресурсов.

Во время изучения Loki собирал логи с помощью встроенного плагина докер - grafana/loki-docker-driver. Он удобен в первую очередь тем, что можно в каждом конкретном контейнере указать, что логи отправляются в Loki. Примерно так:

  logging:
   driver: loki
   options:
    loki-url: "http://192.168.137.30:3100/loki/api/v1/push"
    loki-retries: 2
    loki-max-backoff: 800ms
    loki-timeout: 1s
    keep-file: "true"
    mode: "non-blocking"

Благодаря этому можно выбирать, какой контейнер и куда отправляет логи. Если вам нужны логи только от одного контейнера, а у вас их крутится 10, то этот драйвер будет в самый раз.

Но у такого подхода есть существенные минусы, с которыми я столкнулся:

1️⃣ Сам по себе драйвер - отдельная сущность. И если в нём будут ошибки, то у вас не запустятся контейнеры, которые от него зависят. И я эти ошибки ловил. Не всегда и не везде, но иногда было так, что этот драйвер по какой-то причине не запускался. Причём быстро выяснить причину не удавалось. Просто не запускался автоматически loki.sock после перезагрузки хоста. Лечилось ручным запуском. Причина была не в том, что Loki недоступен.

2️⃣ За плагином надо отдельно следить и обновлять. Причём обновление требует перезапуска самой службы Docker со всеми вытекающими последствиями в виде остановки или перезапуска контейнеров в зависимости от их настроек. Это если у вас не включен параметр live-restore. С ним контейнеры не будут перезапускаться вместе со службой. По умолчанию этот параметр не активен. С ним есть свои нюансы.

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

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#docker #logs #loki #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍56👎1
Синхронизация двух разнесённых хранилищ с файлами - нетривиальная задача, особенно если они состоят из десятков и сотен тысяч файлов. Сделать копию данных и регулярно синхронизировать - полдела. Нужно ещё как-то их сравнивать, чтобы убедиться в том, что данные в обоих местах идентичны. Мало того, что при передаче данные могут повредиться, так они ещё и со временем могут протухать из-за bit rot (битовое гниение на хранилищах) или silent corruption (повреждения из-за памяти, контроллеров, неисправных кабелей и т.д.)

С bit rot я лично сталкивался, так что это не гипотетическая ситуация. Хотя в моём случае это не приводило к каким-то проблемам, так как протухали очень старые данные, которые по сути никому уже и не нужны, а хранятся просто так, на всякий случай. Но где-то это может быть критично.

По моему опыту хранилища на несколько терабайт данных с сотнями тысяч файлов быстрее всего синхронизировать с помощью rsync. Я так обычно и делаю. У меня много заметок на этот счёт в канале. Особенность rsync в том, что он умеет быстро сравнивать хранилища и находить только изменившиеся файлы, учитывая размер файла и mtime. На основе этих данных формирует список разнящихся файлов и копирует только их.

Такой подход не страхует от повреждения файлов во время передачи. Хотя сетевые протоколы содержат собственные механизмы контроля целостности, файлы могут повредиться, например, из-за неисправной памяти, контроллеров или других аппаратных сбоев. Даже если ваше хранилище защищено от bit rot, гарантировать поступление точной копии файла оно не может. Нужны дополнительные проверки.

Rsync, как и некоторые другие подобные программы, могут сверять контрольные суммы файлов. Но это очень длительный процесс, если хранилище большое. В момент передачи данных делать это нецелесообразно. Процесс может растянуться на дни. Не так давно я в локальной сети сравнил два хранилища объёмом в 1ТБ, где хранятся ~100 тыс. файлов. У меня процесс длился в районе 20-ти часов.

Подсчитывать контрольные суммы для сравнения логичнее локально и отдельно от передачи, разнеся эти процессы по времени. Если синхронизация выполняется раз в день, то сравнение можно делать раз в неделю/месяц. Для этого есть много различных программ. Я недавно увидел анонс одной из них - precizer, поэтому и решил написать об этой теме. Ранее мне был знаком скрипт bitrot, который делает примерно то же самое, но не так изящно.

Precizer для максимального быстродействия написана на чистом Си, компилируется в одиночный бинарник, проста в использовании. Производительность в основном зависит от работы дисковой подсистемы, так как файлы приходится полностью читать. Обычно это узкое место. Результаты анализа файлов хранит в SQLite. Если её прервать, а потом запустить снова, она продолжит работу, не потеряв всё то, что сделала ранее. Это отличный инструмент для фоновой проверки хранилищ по расписанию.

Работает примерно так:

# precizer --progress --database=share1.db /mnt/share1
# precizer --progress --database=share2.db /mnt/share2
# precizer --compare share1.db share2.db

В базах share1.db и share2.db хранится относительный путь файла, его хэш SHA512 и метаданные (размер, ctime и mtime). Последующие запуски для обновления базы выполняются с ключом --update, чтобы заново не пересчитывать хэши к неизменившимся файлам.

Решений подобной задачи может быть несколько. Передача и сравнение файлов - только одно из них. Можно передавать снепшоты файловых систем, или систем хранения, если они это поддерживают. Например, снепшоты zfs или lvm и потом их сравнивать. Можно хранить данные в формате чанков, как это делает, к примеру, restic или borg и делать проверки на уровне чанков. Итоговое решение нужно выбирать по месту в зависимости от того, какая архитектура хранения и бэкапов используется. Уровень файлов имеет свои недостатки, но удобен, так как вы в случае чего сразу имеете живую копию данных, которую сможете использовать без преобразования или каких-то ещё дополнительных действий.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#backup
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍71👎2
Смотрю иногда ютуб канал Будни сантехника. Не знаю зачем, просто нравится. Кое-что полезное узнал - как правильно наматывать фум ленту и сантехническую нить, как канализацию правильно делать и т.д. Живущим в частном доме эта информация не лишняя, особенно если у них всё на полипропилене 😁.

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

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

Я давно знаю эту свою проблему. Разучился отдыхать. Надо заново учиться. Всё время в делах, заботах, что-то делаю, придумываю, планирую и т.д. Это не сказать, что плохо, но уже крайность, от которой надо уходить обратно в сторону нормы. Как минимум для сохранения здоровья. Часто ночами засиживаюсь, настраивая что-то в своей серверной. Прикиньте, каким надо быть фанатом, чтобы весь день настраивать сервера на работе, а перед сном - у себя дома.

Если вы такой же фанат-трудоголик, как этот сантехник и я, то писните что-нибудь интересное на эту тему в комменты. Я для забавы снизу прикрепил картинку, как я как-то раз зашёл на сайт, вроде бы мебельного магазина, и увидел протухшый сертификат. Не смог пройти мимо.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116👎6
Вернулся из небольшого отпуска. Последняя публикация была на эту тему не просто так. На прошлой неделе скомканное расписание получилось, потому что пришлось заранее всё в планировщик добавить в более сжатом формате. Когда постоянно работаешь, привыкаешь. И если работа тебе не ненавистна, то в целом всё нормально. А вот после отпуска вкатываться в рабочий график - прям мучение. Иногда кажется, что лучше совсем не ходить в него, чтобы потом не приходилось привыкать обратно.

Для разгона решил закончить свою старую тему с ИБП, так как лично для меня она получилась поучительной. Напомню, для тех, кто не читал прошлую публикацию. Я подключил сервер, у которого блок питания с Active PFC к линейно-интерактивному ИБП. В итоге при переходе на батареи сервер аварийно выключался и не мог стартовать при работе от батарей, уходил в циклическую перезагрузку.

Существуют разные мнения на этот счёт. Насколько я понял проблему, суть там вот в чём. В линейно-интерактивном ИБП при переходе на питание от батарей происходит кратковременное снижение и в моменте пропадание напряжения, на которое БП с APFC реагирует резким повышением потребляемого тока. И если в ИБП нет достаточного запаса по мощности, либо если переключение чуть увеличено от базовых значений, он выключается. Это основная причина проблем, а не плохой синус, как считал я, и как писали некоторые люди, а так же ИИ.

Пришёл именно к этому мнению, потому что видел довольно много отзывов, когда у людей сервера нормально работали от линейно-интерактивных ИБП. Думаю, что там либо запаса по мощности хватало, либо БП не так активно увеличивали ток из-за более кратковременного перехода, поэтому и не происходило отключение. Но в любом случае однозначная рекомендация - сервера с APFC должны быть запитаны от онлайн ИБП.

Я в итоге и купил (за 13700 р.) один из таких, практически самый дешёвый - FinePower MIX ONLINE 1000VA, он же DEXP MIX ONLINE 1000VA. Он же и под другими брендами продаётся, но внешний вид у них у всех один и тот же. Я его уже настроил, протестировал. Работает нормально. Выбрал именно его, потому что дешёвый, и потому что не увидел каких-то явно плохих отзывов. В целом у всех он работает нормально. Проблема лично у меня возникла с софтом под Linux. У меня не получилось его завести, хотя я видел отзывы, когда у людей получалось. В зависимости от бренда, под которым он продаётся, у него может быть разная прошивка и протокол обмена данными. У меня ни через NUT, ни через его родной софт под Linux, он не заработал.

Немного помучался и завёл всё через виртуальную машину на винде. У меня он всё равно к гипервизору подключен. Там софт нормально работает. Он тушит по SSH гипервизор. Мою супермикру этот ИБП держит в районе 15-20 минут. Если верить его дисплею, то нагрузка обычно ~150Вт. Для моих задач этого ИБП достаточно. Рекомендовать его не буду из-за кривого софта, но за эти деньги другой не купить. Плюс, он шумит вентилятором, но мне не критично, так как стоит в нежилом помещении. Если бы не этот вентилятор, то был бы отличный вариант для домашнего онлайн ИБП для компьютера под виндой.

В итоге сервер работает от этого онлайн ИБП, а остальные компьютеры - от линейно-интерактивных. И всё в порядке. То есть проблемы в явном виде с этим ИБП не было. Он просто не совместим с конкретным сервером, как и большинство его собратьев такого же типа.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#железо
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61👎4
Мы заперли AI-агента в комнате.
Сможет ли он выбраться?

Этот воркшоп не про очередного чат-бота, который красиво отвечает на вопросы.

Мы соберём AI-агента на LangChain v1 и поместим его в виртуальную смертельно опасную квест-комнату. Игра началась!

У агента будут инструменты: он сможет осматривать предметы и выполнять игровые действия через Function Calling.

А мы выступим в роли кукловода и будем давать ему подсказки через интерком. И наша цель вовсе не в том, чтобы ИИ успешно нашёл выход…

На воркшопе разберём:
— как быстро собрать логику AI-агента на обновлённом LangChain;
— как подключать инструменты для выполнения действий через Tool Calling;
— как сохранять память между ходами;
— как создать REST-интерфейс на FastAPI;
— как устроены архитектура и развёртывание такого агента.

В игровой форме разберём основные механики создания AI-приложений и дадим возможность бесплатно запустить своего агента через наш LLM-прокси.

📅 16 июля в 19:00 по МСК

👉 Регистрация в боте - https://t.me/inz_infra_bot?start=210212

Реклама, ООО Инженеркатех, ИНН 9715483673, erid: 2SDnjecUTkX
👍10👎3
Есть разные способы автоматической доставки необходимых пакетов софта на целевые сервера: ansible или аналоги, bash, в частности с помощью bashible, cloud-init, различные ci/cd системы со своими агентами. Во всех этих системах первое, что приходит в голову, сформировать список необходимых пакетов и передавать его на установку. В случае необходимости, список можно менять.

Но есть и другой распространённый подход - создание мета-пакета, который включает в себя в виде зависимостей набор отдельных пакетов. В случае каких-то изменений в составе пакетов, вам не придётся менять составленный ранее список. Достаточно изменить сам мета-пакет, и сервера при стандартном обновлении установят недостающее.

В зависимости от ситуации, можно использовать тот или иной подход. У каждого есть как свои плюсы, так и минусы. Например, если список пакетов хранится в ansible и часто меняется, придётся постоянно обновлять список в переменной и пушить эти изменения в репозиторий. Если они несущественны и не требуют отдельного учёта, проще менять мета-пакет, не затрагивая код ролей или плейбуков. Например, если вы ведёте набор софта для настройки рабочей станции на Linux. Там будет масса всего для установки. Удобно всё это завернуть в один мета-пакет workstation и менять именно его.

Мета-пакеты во всю представлены в стандартных репозиториях. Самый популярный мета-пакет - linux-image-amd64, который обновляет ядро. Посмотреть его состав можно так:

# apt show linux-image-amd64
.....
Description: Linux for 64-bit PCs (meta-package)
.....

Набор инструментов build-essential, оболочки gnome, xfce4, kde - это всё тоже мета-пакеты. Узнал о них совершенно случайно не так давно. Сколько лет настраиваю линуксы, всегда пакеты по одному ставил, храня списки в переменных.

Собрать свой мета-пакет очень просто. Покажу на примере мета пакета deb-base с набором программ, которые я обычно ставлю на все сервера:

# mkdir -p ~/deb-base/DEBIAN
# nano ~/deb-base/DEBIAN/control

Package: deb-base
Version: 1.0
Architecture: all
Maintainer: Vladimir <root@serveradmin.ru>
Depends: sudo, curl, wget, htop, rsync, unattended-upgrades, net-tools, lsof, iftop
Description: Base Debian server configuration

# dpkg-deb --build deb-base

Получил на выходе мета-пакет deb-base.deb, у которого в зависимостях sudo, curl, wget, htop, rsync, unattended-upgrades, net-tools, lsof, iftop. При установке мета-пакета они все будут установлены:

# apt install ./deb-base.deb

Причём эти пакеты устанавливаются по-отдельности, их можно как обычно посмотреть через dpkg:

# dpkg -l | grep iftop

В случае необходимости любой из установленных пакетов можно удалить как обычно через apt. Если изменить список пакетов и версию в файле control, пересобрать мета-пакет и запустить:

# apt upgrade ./deb-base.deb

То в систему будет добавлено то, чего не хватает из зависимостей в мета-пакете. Если ты свои пакеты хранишь в локальном репозитории, то изменения приедут на целевые сервера с плановым обновлением.

Работают мета-пакеты просто и прозрачно, используя для создания встроенный в deb дистрибутивы менеджер пакетов dpkg. Есть и другие инструменты для этого, но этот проще всего.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍112👎3
С недавнего времени стал дома работать на стационарном компьютере. При этом остался довольно производительный ноутбук с 32 ГБ памяти и дискретной видеокартой. Иногда его включаю для различных задач и оставляю рядом на столе.

Пользоваться им в таком режиме не очень удобно, потому что постоянно надо руки переносить с основной клавы на тачпад и клавиатуру ноутбука. Решил поискать, кто и как решает такую проблему. Оказывается, есть целый класс программ, которые позволяют программно подключать клавиатуру и мышь к разным устройствам. Работает всё это очень просто и удобно.

Я взял open source программу Deskflow. Она поддерживает все популярные системы, а для винды есть в том числе портабельная версия, работающая без установки. Запустил её на компе и на ноуте. Компьютер сделал сервером, так как клавиатура и мышь подключены к нему. На ноутбуке запустил Deskflow в режиме клиента.

Клиент подключается к серверу и в такой связке они используют одну клавиатуру и мышь. Плюс, объединяется буфер обмена. Работает всё это очень удобно, как-будто у вас к системнику подключены два монитора. Просто ведёте мышку к краю экрана монитора и она переходит на экран ноутбука. Работает всё чётко и быстро. Никаких проблем и задержек. Мне очень понравилось.

Раньше вообще не знал, что существуют такие программы. Не было в них нужды.

Deskflow миниатюрна, написана на C++ с GUI на QT. Этим объясняется её кроссплатформенность. Я так понимаю, можно разные системы подключать - Windows, Linux, macOS. У меня обе машины на винде, так что я пробовал только на ней. В настройках ничего не настраивал, только TLS отключил. В своей локалке он мне не нужен.

Сюда бы ещё добавить передачу файлов. Пробовал через буфер - не работает. Буфер только для текста, файлы, даже небольшие, передавать не получается.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#remote
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍243👎1
Мысль про магистратуру у тебя, скорее всего, уже была. Может, даже не раз

Магистратура «Управление внедрением ИИ в бизнес» от «Школы 21» и МИФИ — для тех, кто давно понял: ИИ меняет бизнес быстрее, чем кажется.

Что внутри:
🔹 живые сценарии применения ИИ — конкретные решения для бизнеса, не абстрактные алгоритмы
🔹 управление бизнесом и понимание технологий — чтобы говорить с разработчиками на одном языке
🔹 реальные проекты от компаний прямо во время учёбы
🔹 диплом МИФИ — технического вуза с серьёзной инженерной репутацией.

Что ты будешь изучать:
🔹 основы ИИ, машинного обучения и работы с данными
🔹 Python, нейросети и базовые инженерные инструменты
🔹 продуктовый подход: гипотезы, метрики, запуск ИИ-решений
🔹 экономику и эффективность внедрения ИИ в бизнес
🔹 проектирование и внедрение ИИ-систем в компаниях

Все подробности и заявка — на сайте.
👎12👍3
У меня дома скопилось некоторое количество 1ТБ дисков, которые всё время собирался выкинуть, потому что негде было использовать, но так и не поднялась рука. Сейчас посмотрел, сколько они стоят - от 10 т.р. 😱 Обрадовался, что в итоге не выкинул. Решил их приспособить под полезное дело.

Так же без дела лежит старенький HP Microserver на 4 диска. Собрал в нём RAID5 и приспособил под очень холодные бэкапы. Сервер периодически сам включается, забирает нужные данные и выключается.

Рассказываю по шагам, что он делает. Реализацию не привожу, так как там всё просто. Любой ИИ вам напишет, как всё это настроить. Не знаю, составит ли он подобный план. Я это всё сам придумал и реализовал.

1️⃣ В BIOS включена загрузка через Wake-on-LAN (WoL). Она же включена в системе (Debian) через ethtool.

2️⃣ В Mikrotik, работающем 24/7 шлюзом, стоит задание в планировщике раз в сутки запускать скрипт, который через WoL запускает сервер. Там буквально одна строка:
tool wol interface=ether4 mac=AA:BB:11:22:33:44

3️⃣ На сервере подготовлен скрипт, который после загрузки монтирует диски с нужными данными, запускает rsync и забирает файлы. Rsync работает с сохранением изменившихся файлов, чтобы была история изменений.

4️⃣ После завершения работы rsync, сервер автоматически выключается. Оставил задержку на 5 минут и возможность оставить файл в виде флага, при наличии которого сервер автоматически не выключится. Это чтобы была возможность к нему спокойно подключиться в случае необходимости.

Получилось дёшево и сердито - офлайн бэкап важных данных, который ничего не стоит. Сервер постоянно выключен. Включается раз в сутки примерно на 10 минут. Забирает данные и выключается. Я очень комфортно себя чувствую, когда имеется возможность настроить бэкапы именно в таком виде.

Сейчас прорабатываю вариант проверки файлов и мониторинга этого дела, чтобы быть на 100% уверенным, что на этом сервере актуальная копия данных.

Я подобные схемы уже не раз настраивал и могу сразу рассказать про подводные камни, с которыми можно столкнуться.

▪️На некоторых системах WoL глючит. Не знаю, почему. Приходится шаманить с настройками в ethtool, добавлять скрипты в автозагрузку на возврат некоторых параметров, которые слетают. Я это наблюдал на одном и том же железе, устанавливая туда разные системы. Проблемы иногда возникают после обновления на новый релиз.

▪️Управляющий сервер, который запускает скрипт WoL и целевой сервер должны быть в одном сегменте сети L2, чтобы можно было отправить запрос по MAC адресу. По научному это называется - должны находиться в одном широковещательном домене. А если совсем по простому - воткнуты в один свитч. Это ограничение в некоторых случаях можно обойти.

▪️Если было полное обесточивание целевого сервера, то по WoL он не включится. Нужно один раз включить его вручную и штатно выключить. После этого он снова будет автоматически включаться. Не знаю, с чем это связано. Не всегда и не везде воспроизводится, но я с этим регулярно сталкивался.

Отдельно отмечу, что это не единственный бэкап. В таком виде с ним неудобно работать. Можно назвать его бэкапом бэкапов, но это тоже неверно. Забирать желательно оригинальные данные, а не бэкапы, потому что если в бэкапах проблема, вы эти же проблемы заберёте и к себе. Если настраиваю несколько бэкапов, то по возможности стараюсь все их брать с оригинальных данных.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#backup
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍176👎1
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Это видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне понравились.

🔥 AnythingLLM + Ollama = Ваш AI научится читать ваши документы!
Настройка локальной RAG-системы для работы локальной же LLM с вашими документами.

Влияние TLS-библиотек и настроек на производительность
Полезная информация на тему влияния различных библиотек TLS и шифров на производительность. Автор протестировал разные библиотеки и их влияние на производительность веб сервера. В конце всё свёл в итоговую таблицу. По результатам есть над чем подумать в своих конфигурациях. Разные библиотеки и шифры показывают себя по разному в зависимости от сценария нагрузки.

HomeLab #4. Новая ультракомпактная ХомЛаба!
Waveshare HomeRack 8U. Только алюминий!
Прикольные алюминиевый и железный мини-шкафы для "серверного" (домашнего) оборудования. Меня прям очень радуют сборки железа в таких мини-стойках, но у самого ни времени, ни лишних денег всем этим заниматься нет. Первое видео особенно понравилось. Без перемотки целиком посмотрел.

Как запустить ИИ дома и не разориться? Бюджетные сборки до 100к рублей
Любопытное видео, где автор пару "бюджетных" сборок протестировал с локальными моделями.

ЛУЧШИЕ ЛОКАЛЬНЫЕ OCR-модели: тесты и сравнение на реальных документах. Часть 2
Интересное тестирование небольших локальных моделей на конкретных задачах. Это вторая часть, где взяли некоторые совсем свежие модели для тех же задач, что были в первой части. Если вам не актуальна эта задача и смотреть всё видео желания нет, скажу, что модель Qwen3.5 (2B и 4B) показала приличные результаты, что в очередной раз подтверждает её универсальность и приличное качество. Это наглядный пример, где небольшие локальные модели могут успешно решать прикладные задачи.

The Best Docker Manager I’ve Seen! // Arcane Tutorial
Очередная панель управления контейнерами Docker на замену Portainer и Dockhand. Выглядит реально функциональнее того, что предлагают предыдущие панели. Тут и бэкапы, и топология сети с настройкой, и проброшенные порты, и многое другое.

Better HomeLab Secret Management // Infisical Tutorial
Подробный обзор open source платформы для хранения секретов Infisical. Слышал мельком про эту систему, но ни разу не видел и не настраивал. Выглядит функционально и просто в настройке. Надо будет попробовать.

Claude Code - мой видеомонтажёр: автоматизация YouTube канала
Интересное видео на тему того, как ИИ, в том числе с помощью локальных моделей, помогает создавать и монтировать видео. Там и распознавание речи, и сведение дорожек, и таймкоды, и видеоэффекты для инфографики и многие другие вещи. Всегда любопытно посмотреть на конкретный пример использования ИИ, а не просто демонстрацию на каких-то условных примеров.

VLANs for Proxmox + OPNsense: My Homelab Setup
Хороший пример настройки VLAN в виртуальной инфраструктуре. Там и теория, и картинки со схемами, и демонстрация настройки.

I Switched Back to Obsidian (because of AI)
Занимательная история переезда с Obsidian на Notion, а потом обратно. Причина - удобная интеграция .md заметок из Obsidian с локальными агентами. Кстати, уже не первый раз вижу видео на эту тему. Судя по всему Obsidian реально удобен для этих задач. Ещё один реальный пример интеграции ИИ в рабочие процессы.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52👎2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84👎3
🤡 Самый хороший сервер — тот, о котором вспоминают только при продлении

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

Поэтому в ИХЦ мы собрали всё, что может понадобиться для запуска и развития проекта — от первого сайта до собственного сервера.

🚀 Выбирайте то, что подходит именно вам

🟡 Виртуальный хостинг — от 123 ₽/мес
Для сайтов на WordPress, 1С-Битрикс, Joomla и других CMS. Установка популярных систем — в пару кликов.
7 дней бесплатного тестирования.

🟡 VPS в России — от 317 ₽/мес
Подходит для Telegram-ботов, Docker, разработки, тестовых окружений и собственных сервисов. 3 дня бесплатного тестирования.

🟡 VPS в Европе — от 366,5 ₽/мес
Для проектов, которым важна европейская площадка, международная аудитория или размещение сервисов за пределами России.

💡 А ещё

✔️ Хостинг облачной 1С
✔️ Домены
✔️ Резервное копирование
✔️ Партнерская программа до 50%
✔️ Оплата в рублях и круглосуточная русскоязычная поддержка даже для европейских серверов
✔️ DDoS-защита включена по умолчанию на всех тарифах

Попробуйте ИХЦ сами — возможно, вопрос с выбором хостинга закроется надолго.

👉 Посмотреть тарифы: ihc.ru

Реклама, ООО Интернет-Хостинг, ИНН 7701838266.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29👎7
Есть довольно известная программа в Linux (в Windows тоже работает) для хранения и управления историей - atuin. Видел много про неё заметок в различных тематических каналах. Но в основном там были общие слова, либо пересказ описания. Программа мало того, что сама по себе довольно удобная и полезная, но таких немало, так у неё есть ещё одна особенность, которая меня заинтересовала. Она поддерживает централизованное хранение истории со всех хостов в одном месте с возможностью смотреть или искать глобально по всей истории.

Я развернул всё это хозяйство у себя на постоянку, настроил, чтобы было удобно пользоваться и хочу поделиться своим опытом. Сразу скажу, что я не уверен, что подобное стоит устанавливать в прод. Я бы не стал, если прям сильно не нужна эта функциональность. Развернул всё на своих личных машинах, которых у меня немало и которым тоже требуется централизованное управление.

📌 Перечислю основные возможности atuin:

▪️Замена основного поиска по истории через CTRL + R. Работает удобно, мне лично очень понравилось.
▪️Централизованный сбор истории со всех хостов. Хранение либо в SQLite, либо в PostgreSQL. Это одновременно и удобный поиск по всей истории, и её бэкап.
▪️На сервере может показывать глобальную историю, историю всего хоста, текущей сессии или конкретной папки.
▪️Помимо непосредственно выполненной команды сохраняет код выхода, время исполнения, в какой директории была запущена.
▪️Стандартную историю в ~/.bash_history не заменяет и не перезаписывает.
▪️Работает со всеми популярными оболочками, в том числе powershell.
▪️В bash работает с помощью хуков preexec и precmd через расширение bash-preexec.sh, в других оболочках не проверял.
▪️ Всё это open source.

Не буду подробно останавливаться на установке клиентов, так как в документации всё это есть. Для сервера я взял готовый docker-compose.yml, убрал оттуда postgres и заменил на локальную sqlite, просто указав:

ATUIN_DB_URI: sqlite:///config/atuin.db

Соответственно, бэкап всей истории - это бэкап файла atuin.db. Теперь после установки клиентов на хостах достаточно добавить адрес своего сервера для хранения там истории.

Приведу пример настроенного мной клиента в ~/.config/atuin/config.toml. Отражу только те параметры, что изменил по сравнению со стандартом:

- sync_address = "http://192.168.137.57:8888"
Мой локальный адрес сервера истории

- sync_frequency = "0"
Сразу после записи команды отправлять её на сервер

- filter_mode = "host"
По умолчанию в поиске по CTRL+R открывается история хоста

- history_format = "{time} {host} {user} - {directory} | {command}"
Формат хранения истории, по умолчанию не сохраняет имя сервера, добавил

- style = "full"
Всегда отображать полный интерфейс

По умолчанию autin запускается по CTRL+R или по стрелке вверх. Последнее мне не нужно, я сразу отключил. Для этого в ~/.bashrc добавил ключ к запуску:

eval "$(atuin init bash --disable-up-arrow)"

После настройки первого клиента, регистрируем учётную запись на сервере:

# atuin register

Далее записываем в atuin уже существующую историю и синхронизируем её с сервера:

# atuin import auto
# atuin sync

На следующих серверах достаточно будет сделать:

# atuin login

И зайти под уже созданной учёткой. Теперь при нажатии CTRL+R у вас откроется поиск по текущей истории хоста. Дальнейшее нажатие комбинации CTRL+R переключает область поиска: сессия, директория, глобальный поиск.

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

# atuin search --filter-mode global

Можно её грепать, а можно прямо тут написать строку для поиска. Например, смотрим на все перезагрузки:

# atuin search --filter-mode global reboot

В целом, удобное решение для централизованного хранения истории. Тут тебе и сама история хоста и по сути глобальный аудит. Не хватает веб интерфейса для просмотра.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍70👎4
Ingress-nginx уходит в прошлое. С марта 2026 поддержка прекратилась. А что вместо него? Предлагаем посмотреть на Gateway API, новый стандарт Kubernetes SIG.

23 июля в 17:00 старший SRE-инженер MWS Cloud Евгений Макеев на практике покажет:

⚫️ чем маршрутизация Gateway API отличается от Ingress
⚫️ как выбрать контроллер
⚫️ как установить Gateway API в Managed Kubernetes
⚫️ как настроить безопасное подключение через TLS-сертификат

Будет полезно для DevOps, платформенным инженерам и разработчикам.

Регистрируйтесь по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👎4
Середина лета, такое затишье. Ощущение, что все по отпускам разъехались и никто не работает. В мессенджерах почти никто не пишет, не звонит на телефон. Красота. Развлеку вас немного.

Недавно ездил в Калугу. Был там в музее космонавтики. Это, кстати, самый большой музей в Европе по данной теме. Больше только в США. Там построили современное, многоярусное здание, оформили прилегающую территорию. Получился интересный современный музей. На улице можно увидеть оригинал ракеты-носитель «Восток». Рекомендую посетить.

В старом корпусе, где не только космонавтика, обнаружил необычный экспонат - Робот секретарь "APC". Он привлёк моё внимание, потому что тема персонального помощника в связи с развитием ИИ сейчас на волне, да и робототехника тоже. Вот что умел этот робот, созданный в 60-е годы прошлого века:

1️⃣ Будить хозяина в указанное время, включать на магнитофоне запись утренней гимнастики, напоминать о планах на день.

2️⃣ После ухода хозяина отвечать на звонки по телефону и записывать сообщения от звонящих, до 30 телефонных сообщений по 2 минуты.

3️⃣ В случае кратковременного отсутствия хозяина, просить звонящего подождать у телефона или сообщить через какое время вернется хозяин и можно будет перезвонить.

4️⃣ Приносить телефонный аппарат хозяину:
- в случае телефонного вызова,
- при желании хозяина позвонить.
Если вызываемый абонент занят, то АРС начинает процесс дозвона набором номера через каждые 3 минуты. Как только удается дозвониться - передает трубку хозяину.

5️⃣ Самостоятельно набрать номер на телефоне: для передачи сообщения в заданное время, для наведения справки в справочном бюро, для вызова аварийных служб (пожарная, скорая и т.д.) при срабатывании соответствующих датчиков.

6️⃣ Включать хозяину в заданное время приемник, телевизор или магнитофон. Записать на магнитофон передачу с приемника, телевизора или трансляционной сети.

7️⃣ Включать и выключать освещение в доме, поддерживать заданную температуру в квартире путем регулировки кранов на батареях отопления.

8️⃣ Реагировать на стук или звонок в дверь:
- сообщить, что хозяина нет дома, и через сколько будет;
- если хозяин дома, то открыть дверь гостям.

9️⃣ Приветствовать гостей поднятием руки и произнесением заранее записанного приветствия, проводить гостей в гостиную, включить им телевизор или магнитофон, предложить гостям выпить и разлить напиток в бокалы и подать на специальном столике.

Весил этот железный друг около 100 кг, рост - 170 см. Робот реально функционировал. Это не макет. Создал его по сути один человек-энтузиаст - Борис Николаевич Гришин, преподаватель Калужского техникума железнодорожного транспорта. Он же и передал его потом в музей.

Я впервые услышал о таком роботе, поэтому заинтересовался и решил поделиться с вами. Меня лично он впечатлил как разработка такого далёкого прошлого, да ещё и сделанная одним человеком. Представьте, что могли бы сделать 10-15 таких человек при должной ресурсной поддержке?

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#железо
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143👎1