Как записывать и воспроизводить сеансы терминала 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
Record Linux Terminal
Запись терминала Linux

Теперь попробуйте просмотреть лог-файл ‘my_terminal_session.txt’ для всех записанных команд, во время просмотра лога вы поймете, что скрипт также сохраняет переводы строк и пробелы.

vi my_terminal_session.txt
View Linux Terminal Recording
Просмотр записи терминала Linux

Вы можете использовать опцию -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
Replay Last Executed Commands in Linux
Воспроизведение последних выполненных команд в Linux

Когда файл log_file воспроизводится с использованием информации о времени, записанные команды выполняются, и их вывод отображается в то же время, когда отображался исходный вывод во время записи.

Резюме

Эти две команды, script и scriptreplay, просты в использовании и очень помогают, когда нужно выполнить одну и ту же партию команд несколько раз.

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

Надеюсь, это руководство было полезным!

+1
0
+1
0
+1
0
+1
0
+1
0

Ответить

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