Как записывать и воспроизводить сеансы терминала Linux
В этом руководстве мы рассмотрим, как использовать скрипт и команды scriptreplay в Linux, которые помогут вам записывать команды и их вывод на терминал в течение определенного сеанса.
Команда history – это отличная утилита командной строки, которая помогает пользователям сохранять предыдущие использованные команды, хотя она и не сохраняет вывод команды.
Поэтому на помощь приходит команда script, которая предоставляет мощную функциональность, позволяющую записывать все, что выводится на терминал, в файл log_file.
Впоследствии вы можете обратиться к этому файлу, если захотите просмотреть вывод команды в истории из файла log_file.
Вы также можете воспроизвести команды, записанные с помощью команды scriptreplay, используя информацию о времени.
Как записать терминал в Linux?
Если вы хотите создать типскрипт (запись терминального сеанса) в Linux, вы можете использовать команду script, которая запускает новый сеанс оболочки и записывает все, что отображается на терминале, включая ввод и вывод, в указанный файл.
script my_terminal_session.txt
После выполнения команды script вы увидите приглашение терминала, в котором можно выполнять различные команды, а ваша терминальная сессия будет записана в файл “my_terminal_session.txt”.
Теперь попробуйте выполнить несколько команд, чтобы скрипт мог записать выполненные команды на терминале.
cal
w
uptime
whoami
pwd
Чтобы остановить запись, просто введите exit или нажмите Ctrl+D.
exit
Теперь попробуйте просмотреть лог-файл ‘my_terminal_session.txt’ для всех записанных команд, во время просмотра лога вы поймете, что скрипт также сохраняет переводы строк и пробелы.
vi my_terminal_session.txt
Вы можете использовать опцию -a, чтобы добавить файл журнала или типовой сценарий, сохранив предыдущее содержимое.
script -a my_terminal_session.txt
vi my_terminal_session.txt
Чтобы записать в журнал результаты выполнения одной команды, отличной от интерактивного сеанса оболочки, используйте параметр -c.
script -c 'hostname' script.log
Если вы хотите, чтобы скрипт выполнялся в тихом режиме, используйте опцию -q. Вы не увидите сообщения о запуске или завершении работы скрипта.
script -c 'who' -q script.log
Чтобы вывести информацию о тайминге в стандартную ошибку или в файл, используйте опцию –-timing. Информация о времени полезна, когда вы хотите повторно отобразить вывод, сохраненный в файле log_file.
Запустим скрипт и выполним следующие команды w, uptime и cal для записи.
script --timing=time. txt script.log
Вы можете просмотреть файлы script.log и time.txt для команды timing, приведенной выше.
vi script.log
Теперь просмотрите файл time.txt.
vi time.txt
Файл time.txt состоит из двух колонок, первая из которых показывает, сколько времени прошло с момента последнего отображения, а вторая – количество символов, которые были отображены в этот раз.
Используйте страницу man и команду –help для поиска дополнительных опций и помощи в использовании утилиты командной строки script.
Как воспроизвести записанный сеанс терминала в Linux?
Команда scriptreplay помогает воспроизвести информацию в файле log_file, записанную командой script.
Информация о времени определяется опцией -timing=file, используемой с командой script, и в данном случае файлом является script.log, который был использован с командой script.
scriptreplay --timing=time.txt script.log
Когда файл log_file воспроизводится с использованием информации о времени, записанные команды выполняются, и их вывод отображается в то же время, когда отображался исходный вывод во время записи.
Резюме
Эти две команды, script и scriptreplay, просты в использовании и очень помогают, когда нужно выполнить одну и ту же партию команд несколько раз.
Они очень помогают в управлении серверами, которые имеют только интерфейс командной строки для взаимодействия с вашей системой.
Надеюсь, это руководство было полезным!