Поиск по сайту:

Воспроизведение записанных сеансов терминала с использованием Scriptreplay

Некоторое время назад мы узнали, как записывать все, что вы делаете в Терминале, с помощью команды Script в Linux. Используя команду «Сценарий», мы можем записывать сеансы терминала в файл машинописного текста и просматривать их позже с помощью команды Cat или любого другого приложения для просмотра текста. Сегодня мы увидим, как воспроизвести записанные сеансы терминала с помощью команды Scriptreplay в Linux.

Scriptreplay используется для воспроизведения машинописного текста, созданного командой «Script», на стандартный вывод. Он является частью пакета util-linux в системах на базе RPM и пакета bsdutils в системах на базе DEB и предустановлен в большинстве современных операционных систем Linux. Итак, нам не нужно его устанавливать.

Воспроизведение записанных сеансов терминала с использованием Scriptreplay

Как вы, возможно, уже знаете, команда cat отображает только машинописные тексты, но не воспроизводит их. Если вы хотите воспроизвести действие Терминала, а не просто просмотреть его, используйте команду "scriptreplay".

Чтобы воспроизвести действия терминала с помощью scriptreplay, вы должны сначала записать их с помощью команды "script" с информацией о времени в файле с использованием параметра -t, как показано ниже.

script -a my_terminal_activities -t=time.log

Или,

script -a my_terminal_activities --timing=time.log

Здесь,

  • terminal.log — это файл, содержащий выходные данные машинописного текста. Вы можете использовать любое имя по вашему выбору, например time.txt, Timing.log и т. д.
  • my_terminal_activities — это файл, который содержит выходные данные терминала сценария вывода, то есть все записанные действия терминала.

Теперь делайте все, что хотите, в своем Терминале. Например, я собираюсь запустить несколько случайных команд Linux в своем терминале.

lsb_release -a
uname -a

После выполнения всех команд завершите запись командой:

exit

После завершения записи просто воспроизведите ее с помощью команды:

scriptreplay -t=time.log my_terminal_activities

Или,

scriptreplay --timing=time.log my_terminal_activities

Эта команда начнет воспроизводить записанный сеанс терминала, а не просто показывать всю активность.

Вот пример вывода моей системы Ubuntu 18.04:

Воспроизведение записанных сеансов терминала с помощью команды Scriptreplay в Linux

Увеличение или уменьшение скорости воспроизведения

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

Например, чтобы воспроизвести машинописный текст на удвоенной (т. е. 2-кратной) скорости, по сравнению с исходной, запустите:

scriptreplay -t=terminal.log my_terminal_activities 2

Чтобы воспроизвести машинописный текст на половине исходной скорости:

scriptreplay -t=terminal.log my_terminal_activities 0.5

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

scriptreplay -t=terminal.log my_terminal_activities 0.1

Обратите внимание, что Scriptreplay просто отображает активность сеанса, записанную с помощью команды Script. Фактически он не будет запускать команды/программы, которые были запущены при записи машинописного текста. Поскольку одна и та же информация просто отображается, гарантированно, что scriptreplay будет работать правильно только в том случае, если он будет запущен на том же типе терминала, на котором был записан машинописный сценарий.

Для получения помощи запустите:

$ scriptreplay --help

Usage:
 scriptreplay [-t] timingfile [typescript] [divisor]

Play back terminal typescripts, using timing information.

Options:
 -t, --timing <file>     script timing output file
 -s, --typescript <file> script terminal session output file
 -d, --divisor <num>     speed up or slow down execution with time divisor
 -m, --maxdelay <num>    wait at most this many seconds between updates
 -h, --help              display this help
 -V, --version           display version

Более подробную информацию можно найти на страницах руководства.

man scriptreplay

Рекомендуем прочитать:

  • Asciinema – записывайте сеансы терминала и делитесь ими в Интернете
  • Как сохранять команды и использовать их по требованию
  • Добавьте команды Linux в закладки для упрощения повторного вызова
  • Применяйте теги к командам Linux, чтобы легко извлекать их из истории
  • Легкий вызов забытых команд Linux с помощью Apropos
  • Pet – простой менеджер фрагментов командной строки

Статьи по данной тематике