script и scriptreplay


Предыдущая | Следующая

Перед тем, как вы начнёте записывать свою демонстрацию, необходимо лишь запустить утилиту script, которая запустит для вас отдельный bash (или что там у вас объявлено в переменной окружения ${SHELL}) и будет кропотливо записывать всё, что вы вводите. После завершения действий, которые вы хотите записать, достаточно завершить сеанс работы с оболочкой (как правило, Ctrl+D) и вы обнаружите созданный в текущем каталоге файл с именем typescript, который и будет содержать всю историю ваших действий, включая управляющие символы. Если вы хотите, чтобы файл протокола создавался где-то в другом месте, просто передайте путь к файлу в качестве параметра утилите script. Например:

$ script ~/tmp/mytypescript
Script started, file is /home/ashep/tmp/mytypescript
# здесь вводите свои команды #
...
# здесь вводите свои команды #
$ Ctrl+D
Script done, file is /home/ashep/tmp/mytypescript

Теперь, если открыть файл ~/tmp/mytypescript, можно увидеть в нём подробную запись всех ваших действий. Иногда очень удобно и полезно. Однако, если вы хотите, чтобы все сделанные вами действия можно было воспроизвести, необходимо слегка видоизменить запуск script.

Дело в том, что для воспроизведения «сценария», записанного при помощи script, используется другая утилита — scriptreplay, которая требует для воспроизведения дополнительной информации, так называемого тайминг-файла. В этом файле отмечены штампы времени, в которые выполнялись те ли иные действия. Наличие такой информации даёт возможность scriptreplay в буквальном смысле воспроизводить записанное в реальном времени.

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

$ script -t ~/tmp/mytypescript 2>~/tmp/timefile
Script started, file is /home/ashep/tmp/mytypescript
# здесь вводите свои команды #
...
# здесь вводите свои команды #
$ Ctrl+D
Script done, file is /home/ashep/tmp/mytypescript

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

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

$ scriptreplay ~/tmp/timefile ~/tmp/mytypescript