Как записать и воспроизвести терминальную сессию в Linux
В данной статья расскажу как записать и воспроизвести список команд введенных на протяжении работы с терминальной сессией.
Команда history сохраняет историю введеных в сессии команд, но она не сохраняет вывод этих команд. Команда script позволит сохранить всю введенную и полученную информацию в терминале в лог файл.
С помощью команды scriptreplay можно воспроизвести записанные команды.
Как записать команды используя script
Синтаксис команды
1 |
script [options] - -timing=timing_file log_filename |
Для запуска записи команд используйте
1 2 3 |
script history_log.txt Script started, file is history_log.txt |
Что бы остановить записть введите exit нажмите Enter
1 2 3 |
exit Script done, file is history_log.txt |
Если не указать имя лог файла, то будет запись по умолчанию в файл typescript, права доступа к файлу typescript не позволяет читать, писать и выполнение файл. Когда вы запустите команду сценария без имени файла журнала, он пытается записать в файл по умолчанию, typescript, следовательно, выдаст ошибку.
1 2 3 4 5 |
ls -l typescript --------- 1 ubuntu ubuntu 144 Sep 15 00:00 typescript script script: open failed: typescript: Permission denied Terminated |
Запишем несколько команд
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
script script.log cal September 2015 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 w 14:49:40 up 4:06, 2 users, load average: 1.37, 1.56, 1.62 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT tecmint tty8 :0 10:45 4:06m 7:40 0.36s x-session-manager tecmint pts/5 :0 13:42 4.00s 0.07s 0.00s script script.log $ uptime 14:49:43 up 4:06, 2 users, load average: 1.37, 1.56, 1.62 exit Script done, file is script.log |
Теперь просмотрим результат записи
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
cat script.log cal^M September 2015 ^M Su Mo Tu We Th Fr Sa ^M 1 2 3 4 5 ^M 6 7 8 9 10 11 12 ^M 13 14 15 ^[[7m16^[[27m 17 18 19 ^M 20 21 22 23 24 25 26 ^M 27 28 29 30 ^M ^M w^M 14:49:40 up 4:06, 2 users, load average: 1.37, 1.56, 1.62^M USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT^M tecmint tty8 :0 10:45 4:06m 7:40 0.36s x-session-manager^M tecmint pts/5 :0 13:42 4.00s 0.07s 0.00s script script.log^M uptime^M 14:49:43 up 4:06, 2 users, load average: 1.37, 1.56, 1.62^M |