Сохранение вывода консоли в файл

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

Перенаправление вывода в файл

Для записи вывода команды в файл используется оператор перенаправления:

необходимая_команда parameters > logfile.txt

Если файл logfile.txt существует, его содержимое будет перезаписано. Для добавления новых данных к существующему содержимому следует использовать двойной оператор >>:

необходимая_команда parameters >> logfile.txt

Одновременный вывод на экран и в файл

Для одновременного отображения результата команды в терминале и записи в файл применяется утилита tee:

необходимая_команда parameters | tee -a logfile.txt

Опция -a указывает на добавление данных в конец файла без перезаписи.

Снимок экрана консоли с помощью setterm

Утилита setterm позволяет сохранить содержимое одной страницы виртуальной консоли:

setterm -dump -file /путь/к/файлу

Пример:

setterm -dump -file /root/screenlog

Содержимое текущей виртуальной консоли будет сохранено в указанный файл. Опции утилиты:

  • -dump — создаёт дамп консоли;
  • -file имя_файла — задаёт имя файла для сохранения;
  • -append — добавляет данные к уже существующему файлу.

Для указания номера консоли используется форма:

setterm -dump [N] -file /root/screenlog

где N — номер консоли (например, 1 для /dev/tty1).

Использование утилиты script

Утилита script предназначена для записи всего, что происходит в терминале, включая команды и их вывод:

script --timing=terminal-timing.log terminal.log

После запуска запись начинается немедленно. Все действия будут сохранены в файл terminal.log, а временные характеристики — в terminal-timing.log.

Для завершения записи используется команда:

exit

Для воспроизведения записанного сеанса применяются команды:

scriptreplay terminal-timing.log terminal.log

или

scriptreplay terminal-timing.log terminal.log 2

где число в конце обозначает скорость воспроизведения (2 — в два раза быстрее и т.д.).

Копирование текста с помощью утилиты screen

Менеджер окон screen позволяет копировать данные из буфера прокрутки:

  1. запустить screen:
screen
  1. перейти к выполнению нужных команд;
  2. войти в режим копирования нажатием комбинации клавиш: Ctrl+A, затем Ctrl+[;

установить курсор на начало, нажать Пробел, затем переместить в конец и снова нажать Пробел;

  1. переключиться на новое окно: Ctrl+A, затем: c;
  2. перейти в новое окно: Ctrl+A, затем: 1;
  3. вставить текст: открыть редактор (например, mc), нажать Ctrl+A, затем Ctrl+];
  4. сохранить текст в редакторе;
  5. вернуться в предыдущее окно: Ctrl+A, затем: 0.

Горячие клавиши в Konsole и Yakuake

В эмуляторах терминала Konsole и Yakuake предусмотрена встроенная функция сохранения вывода. По умолчанию используется сочетание клавиш Ctrl+Shift+S

Также можно изменить глубину буфера прокрутки в настройках. Стандартное значение — 1000 строк.