Sao Operation | Как красиво записать видео в терминале Linux?

задняя часть Linux Эксплуатация и обслуживание
Sao Operation | Как красиво записать видео в терминале Linux?

Эта статья участвовала в приказе о созыве Haowen, нажмите, чтобы просмотреть: Заявки на бэк-энд и фронт-энд двойные, призовой фонд в 20 000 юаней ждет вас, чтобы бросить вызов!

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

Добро пожаловать в поиск WeChat »ИТ-путешествие Джейка"обрати внимание на!

Оригинальная ссылка:Sao Operation | Как красиво записать видео в терминале Linux?

предисловие

Я верю всем, первоначальное использованиеLinuxПри работе с системой ищите исторические команды, и вы подумаете об этом с первого раза.history命令: будет отображаться ранее выполненная команда, он не может отображать процесс вывода и результат выполненной команды.

Но иногда мы хотим знать, что делается на этом сервере? Как выглядит процесс исполнения? Каков результат на выходе? Этоhistory命令Он больше не может удовлетворить наши потребности, так что же нам делать?

图片

Пришло время научить вас трюку. Это магический порядок —scriptа такжеscriptreplay

1. Запись - сценарий

script命令: Вы можете записать процесс сеанса под терминалом Linux.

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

scriptа такжеscriptreplayОн установлен по умолчанию в дистрибутивах Linux.В этой статьеscriptможет выполняться непосредственно под операционной системой, иscriptreplayТребуется дополнительная установка.

начать запись

Выполните следующую команду, любая операция, выполненная под терминалом, будет записана;

# script -t 2>test.timefile -a test.txt
Script started, file is test.txt

Проверьте, есть ли в текущем каталоге следующие два файла

# ll
-rw-r--r--. 1 root root  1025 6月   4 07:32 test.timefile
-rw-r--r--. 1 root root  5772 6月   4 07:32 test.txt

test.timefileа такжеtest.txtМожно настроить два имени файла.

  • test.timefile: В основном используется для записи файлов синхронизации, которые записывают при выполнении каждой команды;
  • test.txt: В основном используется для хранения выходного файла выполненной команды;

Общие параметры параметров

  • -t: используется для указания выходного времени записи;
  • -a: используется для вывода записанных файлов и добавления нового контента к существующему контенту;
  • -c: используется для прямого выполнения команд, а не интерактивной оболочки;
  • -f: используется для просмотра содержимого файла журнала при выводе файла журнала;
  • -q: используется для запуска команды скрипта в автоматическом режиме;
  • -V: используется для отображения версии и выхода;
  • Более релевантные подробные параметры параметров, исполняемый файлman scriptкоманда для просмотра;

Выполните следующую команду, чтобы запустить в автоматическом режиме безscriptа такжеexitвыполнить запуск и выход дисплея;

# script -q -t 2>test.timefile -a test.txt

Выполнение заказаexitили используйте горячие клавишиCtrl+Dвыйти и закончить запись;

# exit
exit
Script done on 2016年06月04日 星期六 07时32分42秒

Случай записи процесса выполнения скрипта в директорию

Сначала напишите простое имяxxx.shфайл сценария и предоставить соответствующие разрешения.

# vi helloworld.sh 
#!/bin/bash
echo hello world!
echo welcome to beijing!
echo Let's go to tian 'anmen square!

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

# script -qa "file.out" -c "/root/helloworld.sh"
hello world!
welcome to beijing!
Lets go to tian anmen square!
[root@localhost ~]# cat file.out 
Script started on 2016年06月04日 星期六 13时21分45秒
hello world!
welcome to beijing!
Lets go to tian anmen square!

Выполнение связанных командных операций и запись демонстраций

图片

2. Воспроизведение - повтор сценария

scriptreplay命令: Вы можете воспроизвести результаты, записанные в терминале Linux.

Общие параметры параметров

  • -t: файл, используемый для хранения записанного тайминга;
  • -d: используется для кратного ускорения воспроизведения (может быть десятичным: замедление), в некоторых версиях этот параметр может отсутствовать;
  • -f: используется для обновления кеша сразу после каждой операции.Если этот параметр не установлен, файл не будет записываться в реальном времени;
  • -s: файл, используемый для хранения вывода скриптового терминала;
  • -V: используется для отображения версии и выхода;

установить скриптреплей

путь загрузки пакета util-linux-ng-2.17.2.tar.gz:
mirrors.edge.kernel.org/general/Linux/U…

# tar zxvf util-linux-ng-2.17.2.tar.gz
# cd util-linux-ng-2.17.2
# ./configure && make
# cp misc-utils/scriptreplay /usr/bin/
cp:是否覆盖"/usr/bin/scriptreplay"?y
# cd ..
# scriptreplay test.timefile test.txt

После выполнения вышеуказанной командыscriptreplay test.timefile test.txtПосле этого будет воспроизведена предыдущая операция;

Синхронное использование

использовать-fОпция параметра, некоторые версии не имеют этого параметра, но также могут быть использованыtail -fкоманда для работы;

Как показано на рисунке ниже, вам нужно открыть два терминала xshell, подключиться к одному и тому же устройству и выполнить соответствующие операции синхронизации.左屏幕для: рабочей стороны,右屏幕для: демонстрационная сторона,

существует左屏幕Выполнить команду в терминалеscript -f jacktian

существует右屏幕Выполнить команду в терминалеtail -f jacktian

Тогда вам просто нужно左屏幕Выполните соответствующие команды в терминале,右屏幕будет отображаться左屏幕соответствующие выходные результаты и т. д.;

图片

Автоматический старт

В дополнение к действиям, описанным выше, вы также можете настроить параметры, которые будут выполняться автоматически при входе в систему.scriptкоманду и добавьте ее в файл конфигурации среды оболочки.

создать каталог рекурсивно/var/log/user_record

# mkdir -p /var/log/user_record

редактировать файл/etc/profileДобавьте следующие элементы конфигурации автозапуска

# vi /etc/profile

script -t -f -q 2>/var/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a /var/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.who
if [ "$SHLVL" = 1 ]; then
   exit
fi

Суммировать

  • Запишите выполненную команду в виде видеофайла и сохраните его локально;
  • Результатом сохраненного выходного файла команды можно напрямую поделиться с друзьями;
  • Вы можете вывести результаты файла, сохранив выполненные команды, и вы можете просмотреть подробный процесс выполнения и связанные с ним ошибки;
  • Когда вы сталкиваетесь с трудностями и нуждаетесь в помощи других, не допускайте слишком быстрого выполнения процесса, начинайте запись и смотрите воспроизведение;
  • Начните запись в любое время, чтобы отслеживать соответствующие операции, выполняемые другими пользователями, подключенными к устройству;

Оригинальность непростая.Если вы считаете, что эта статья полезна для вас, ставьте лайк, комментируйте или пересылайте эту статью, потому что это будет моей мотивацией выпускать больше качественных статей, спасибо!

Кстати, друзья-копатели, не забудьте дать мне бесплатный подписчик! На случай, если ты заблудишься и не сможешь найти меня в следующий раз.

Увидимся в следующий раз!