Запись терминальных сессий с помощью asciinema

Установить пакет проще через dnf: команда sudo dnf install asciinema выполняется без плясок с бубном. Никаких внешних репозиториев. Всё есть в основной поставке Red OS.

Для запуска не нужны танцы с переменными окружения. Выполнить asciinema rec – достаточно. Всё. Дальше работает stdin/stdout. Что пишете в консоли, то и уходит в json-файл.

Формат записи – не видео! Это текстовые данные. Читаемые. С ними можно работать как с логом. Обрабатывать, архивировать, публиковать. Без гигабайт мусора в mp4.

Файл создаётся локально. По умолчанию – временный. Указать путь руками? Используйте asciinema rec ~/log.json. Хотите паузу в записи? Ctrl-D. Всё записалось. Остановить и сохранить – просто. Без фантазий, без сбоев.

Важно: путь до файла должен быть доступен на запись. Иначе – тишина. Никаких ошибок, никакого предупреждения. Просто пустота.

Red OS не требует дополнительных прав или конфигурации systemd для запуска. Можно писать от обычного пользователя. Без sudo. Но учтите – если пишете работу root, запускайте от root. Всё логично.

Нужно выгрузить на сайт? Команда asciinema upload ~/log.json. Получаете ссылку. Рассылаете кому нужно. Но никто не мешает хранить локально и разворачивать собственный плеер – всё на GitHub, открыто, прозрачно.

Поддерживается кастомизация. Хотите автозапуск команды? Прописывайте её после --command. Пример: asciinema rec --command "htop". Только один процесс. Вложенность не работает. Знайте это заранее.

Помните: нельзя редактировать лог после записи. Защитите файл от изменений. Особенно, если отправляете его в техподдержку или верификацию.

Слабое место – отсутствие встроенной функции обрезки. Хотите вырезать лишнее? Только руками. Или скриптами. Формат JSON помогает, но требует дисциплины. Без неё – каша.

Читайте также:  Как настроить Apache для аутентификации по паролю

Не используйте на серверах с жёсткой политикой безопасности. Лог может содержать чувствительные команды. Никакой автоцензуры, всё пишется, как есть. Прячьте логи в надёжное место. Шифруйте. Храните в оффлайне, если нужно.

Установка asciinema на популярных дистрибутивах Linux

Red OS: никакой магии. Всё в основном репозитории. Выполнить sudo dnf install asciinema. Без зависимостей. Без конфликтов. Проверено на Red OS 7.3, 7.4, 8.0. Работает одинаково. Стабильно.

Debian и производные: стандартный путь – sudo apt install asciinema. Доступно из официальных пакетов с версии 9 (Stretch). Для более старых – бессмысленно, тянуть руками, пересобирать. Лучше обновить дистрибутив. Не тратьте время.

Arch: команда sudo pacman -S asciinema. Актуально всегда. Репозиторий свежий, версии последние. Если pacman ругается – вы забыли обновить ключи. Исправляется: sudo pacman -Sy archlinux-keyring.

Fedora: идентично Red OS. Использовать dnf. Пример: sudo dnf install asciinema. Работает с версии 30+. На старых – нужен EPEL, но это отдельная боль.

Alpine: минимализм в чистом виде. Устанавливается командой apk add asciinema. Только учтите – в musl-среде поведение команд может отличаться. Не ждите совместимости со скриптами, написанными под glibc.

Внимание! На некоторых минималках типа CentOS 7 Lite asciinema отсутствует. Придётся использовать pip: pip3 install --user asciinema. И тут же – зарыт риск. Проблемы с python-окружением, версионные конфликты, мусор в $HOME/.local. Пользуйтесь только как последним вариантом.

Читайте также:  Релиз Ubuntu 16.04 Xenial Xerus с новыми возможностями и улучшениями

Snap и Flatpak: не используйте. Зависимости тянут пол-интернета. Поведение нестабильное. Логирование ведётся в нестандартные каталоги. Слежение за файлами – головная боль.

Важно помнить: запуск из snap-контейнера ограничен правами AppArmor. Не все команды будут логироваться. Особенно sudo и кастомные бинарники в нестандартных путях.

Обновления? Только через пакетный менеджер. Не надо лезть в исходники. Не надо компилировать вручную. Не в 2004 году живём.

Запись терминальной сессии и сохранение в файл

Базовая команда: asciinema rec session.cast. Файл session.cast появится в текущем каталоге. Формат – JSON, строка за строкой. Всё, что было на экране – будет в этом файле. Чисто. Без компрессии. Без артефактов.

Остановить можно клавишей Ctrl+D или комбинацией exit – как завершение обычного шелла. После этого файл записывается окончательно. До этого момента – буфер. Не успел завершить? Потеряешь всё. Нет автосохранения.

Писать в указанный путь: asciinema rec /var/log/capture.cast. Главное – права доступа. Нет прав – нет файла. Никаких ошибок. Просто тишина.

Внимание! Если путь содержит недопустимые символы или несуществующий каталог, команда завершится молча. Проверяйте вручную.

Чтобы не ждать – автозапуск команды: asciinema rec -c "htop" session.cast. Запускается сразу нужная утилита. Лог пишется. Программа завершилась – запись остановлена. Примерно как script, только точнее и легче.

Работа в background: Не делайте этого. Процессы в фоне теряют привязку к псевдотерминалу. Вы получите мусор или пустоту. Используйте screen/tmux, если очень нужно.

Важно помнить: лог – это не видео. Его можно читать, парсить, валидировать. Но нельзя смотреть как mp4. Для визуализации нужен плеер. Статический или встроенный в asciinema.org.

Файл можно отдать в CI, архивировать, версионировать через git. Просто JSON. Не бинарник. Не обманешь.

Читайте также:  Установка почтового клиента Roundcube Webmail на Debian 11/10 с использованием Apache или Nginx

Проблемы? Часто – переменная TERM. Если лог кривой: export TERM=xterm-256color перед запуском. Или руками в .bashrc. Особенно на серверах с нестандартной конфигурацией терминала.

Публикация и совместное использование записей через asciinema.org

Отправка на сервер: asciinema upload путь_к_файлу.cast. Всё. Никаких ключей. Никакой авторизации. Если авторизация нужна – используйте asciinema auth перед загрузкой. Откроется браузер, выдаст токен. Один раз на сессию.

Хранение без аккаунта – временное. Через месяц – удалят. Хотите навсегда? Зарегистрируйтесь. Больше контроля. Больше записей. Приватность, если надо.

Помните: всё, что отправляется – публично по умолчанию. Если в логе есть пароли, ключи, команды с чувствительными данными – не заливайте. Не проверяют. Не шифруют.

Управление роликами через сайт. Есть интерфейс. Можно удалить, скрыть, переименовать. Всё через личный кабинет. Через CLI – только заливка. Обратного пути нет.

Настройка кастомного проигрывателя – отдельная тема. На сайте доступен HTML-код для встраивания. iframe. Пример: <iframe src="https://asciinema.org/a/qwe123rty456/embed" frameborder="0"></iframe>. Вставляете в вики, на внутренний портал, в учебный курс.

Хостинг на своём сервере? Есть asciinema-player. Ставится через npm. Самый простой способ: npm install -g asciinema-player. Поддерживает локальные логи, не требует подключения к API.

Не работает upload? Прокси? SELinux? DNS? Проверьте первым делом curl https://asciinema.org. Если ошибка – ищите блокировку. На Red OS с SELinux enforcing возможна блокировка curl по умолчанию.

Важно: если используете корпоративную сеть с MITM-сертификатами – загрузка сломается. Добавляйте корневой сертификат в систему, иначе TLS не пройдёт проверку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *