TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #5722 10.2K
Есть довольно известная программа в 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
  • 👍 79
  • 👎 4
More from @srv_admin
  1. Sep 25, 2026▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересны…
  2. Sep 25, 2026Девопсы, сисадмины, архитекторы, техлиды (и вообще все, кто принимает технические или бизн…
  3. Sep 25, 2026Подписчик поделился полезным проектом - Webtop. Это Linux дистрибутив с графикой, упакован…
  4. Sep 24, 2026Траблшутинг - мастхэв компетенция для инженера В Rebrain траблшутинги проводят уже несколь…
  5. Sep 23, 2026Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает,…
  6. Sep 23, 2026Контейнеры в одном инструменте, виртуалки — в другом, частное облако — вообще отдельная ис…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →