При работе с unix-like операционными системами возникает ситуация, когда хочется записать последовательность производимых в консоли действий. Это может понадобиться при выполнение каких-нибудь критических операций, что бы впоследствии проанализировать произведённые действия.
Некоторые могут предложить поставить камеру и направить её на монитор. Но это слишком затратно и накладно. Некоторые могут посоветовать использовать history. Но при использовании нескольких окон, screen’ов часть истории теряется. А хотелось вы в добавок ко всему иметь и результат выполнения.
В одной из предыдущих статей, а именно в “Аудит событий в консоле.” я писал о схожем механизме. Здесь же немножко другой принцып и полход.
В этой статье я расскажу об одной утилите, которая достаточно проста и очень удобна. Называется она ttyrec. По сути это оболочка к бинарнику script. И так, приступим.
1) Установка.
Обновляем порты и ставим ttyrec:
#portsnap fetch update
#cd /usr/ports/misc/ttyrec
#make install clean
2) Использование.
– запись.
Для записи используем такую команду:
$ttyrec /tmp/video1.ttyrec
После этого начнётся запись в файл /tmp/video1.ttyrec. Что бы остановить запись, просто вводим команду exit.
Если запускать ttyrec с параметром ‘-a’ она будет дописывать в конец существующего файла. Если вы планируете обмениваться “записями”, то нужно использовать параметр -u для кодирования uuencode. Есть ещё третий параметр, который позволяет запускать команды при запуске ttyrec
– воспроизведение.
Чтобы воспроизвести ранее сделанную запись выполняем такую команду:
$ttyplay /tmp/video1.ttyrec
У ttyplay так же 3 параметра: регулировка скорости вывода на экран (быстрее, медленнее), вывод без задержки и наблюдение в режиме реального времени на пользователем. О последнем сейчас расскажу подробнее.
Как им пользоваться? Пользователь у себя запускает запись, а вы запускаете воспроизведение файла, но с параметром -p. И всё, что он будет вводить – будет тут появляться у вас. Очень удобно, если нужно, например, кому-то что-то удалённо показать.
Очень важно, что бы имена файлов были на обеих сторонах одни и те же. Иначе ничего не выйдет.
3) Послесловие.
Есть ещё аналог LiLaLo, но на во-первых он только под linux, а во вторых не так прост для новичков.
Ложка дёгтя: нельзя поставить в качестве оболочки (а так же комбинации оболочки и ttyrec), что бы пользователь не знал о том, что идёт запись при каждом заходе на сервер.