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

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

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

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

необходимая_команда 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 позволяет копировать данные из буфера прокрутки, для этого нужно:

  • запустить screen:
screen
  • перейти к выполнению нужных команд;
  • войти в режим копирования нажатием комбинации клавиш: Ctrl+A, затем Ctrl+[;
  • переключиться на новое окно: использовать комбинацию клавиш Ctrl+A, затем нажать клавишу c;
  • перейти в новое окно: использовать комбинацию клавиш Ctrl+A, затем нажать клавишу 1;
  • вставить текст: открыть редактор (например, mc), использовать две комбинации клавиш: сначала Ctrl+A, затем Ctrl+];
  • сохранить текст в редакторе;
  • вернуться в предыдущее окно: использовать комбинацию клавиш Ctrl+A, затем нажать клавишу 0.

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

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

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