Мне нужно сохранить весь вывод Screen в файл, чтобы позже проверить все содержимое.
Причина в том, что я выгружаю флеш-память через последовательный порт, используя Screen для взаимодействия с ней. Я хочу сохранить его в файл, чтобы проверить структуру памяти.
Я пробовал:
$: screen /dev/ttyUSB0 115200 >> foo.txt
$: screen /dev/ttyUSB0 115200 | tee foo.txt
И я также пробовал использовать буферный файл с экрана, но не понимаю, как его использовать.
Есть простой способ?
logging
buffer
dump
gnu-screen
Edoardoo
источник
источник
Ответы:
Есть опция командной строки для регистрации. Вывод сохраняется в файл screenlog.n, где n - номер экрана. Из справочных страниц экрана:
источник
find / -name "screen*log"
что ничего не нашел.Вы также можете использовать Control-a + H для сохранения журналов в файл screenlog.n. Еще один Control-a + H, чтобы выключить.
Ca H: Начало / завершение записи текущего окна в файл "screenlog.n".
источник
a
+:
и введите, например,chdir /home/foobar/baz
Выбранный ответ не очень хорошо работает с несколькими сеансами и не позволяет указать собственное имя файла журнала.
Для сеансов с несколькими экранами это моя формула:
Создайте файл конфигурации для каждого процесса:
Если вы хотите сделать это «на лету», вы можете изменить его
logfile
автоматически.\012
означает "новую строку", так как использование\n
напечатает ее в файле журнала: source .Начните свою команду с флагов «-c» и «-L»:
Вот и все. После первого сброса вы увидите "test.log":
Я обнаружил, что "-L" по-прежнему требуется, даже если "вход в систему" указан в файле конфигурации.
Мне не удалось найти список переменных формата времени (например,% m), используемых экраном. Если у вас есть ссылка на эти форматы, опубликуйте ее ниже.
дополнительный
Если вы хотите сделать это «на лету», вы можете использовать этот скрипт:
Чтобы использовать его, сохраните его (screen.sh) и установите разрешения + x:
... и выполнит ./test.pl и создаст файл журнала в /var/log/TEST.log
источник
on-the-fly
деталь супер полезная.screen -r
with"Unable to open "/tmp/log.conf"
. Кроме того, экран перешел из[detached]
состояния в состояние "несуществующий". В чем могла быть проблема?screen bash
. Если какой-либо другой процесс убивает ваш экран, он должен быть указан как «мертвый», но не исчезать. Я не уверен, что это может быть.Следующая команда работает с версией экрана 4.06.02:
На странице руководства Screen :
Вы можете проверить существующую версию Screen, используя screen -version . Вы можете загрузить и установить последнюю версию экрана со страницы https://www.gnu.org/software/screen/ .
источник
Для терминала Mac:
подробности
script
: Встроенное приложение для "создания машинописного текста сеанса терминала"-a
: Добавить в выходной файл-t 0
: Время между записью в выходной файл составляет 0 секунд, поэтому out.txt обновляется для каждого нового символаout.txt
: Это просто имя выходного файлаscreen /dev/ttyUSB0 115200
: Команда из вопроса для подключения к внешнему устройствуЗатем вы можете использовать tail, чтобы увидеть, что файл обновляется.
источник
Ctrl+Aто Shift+Hу меня работает. Вы можете просмотреть файл,
screenlog.0
пока программа еще работает.источник
Команда 'script' в Unix должна помочь. Просто запустите его в начале новой консоли, и все будет хорошо.
источник
Вот трюк: заверните его
sh -c
!Где
2>&1
перенаправляет stderr на stdout, чтобыtee
можно было улавливать и регистрировать сообщения об ошибках.источник
Может быть полезно следующее (проверено на: Linux / Ubuntu 12.04 (Precise Pangolin)):
Используя вышеизложенное, вы можете выполнить все необходимые изменения направления. Например, чтобы вывести вывод на консоль при сохранении в файл, вы должны:
источник
Другой ответ, если вам нужно сохранить вывод всего вашего буфера прокрутки с уже активно работающего экрана:
Это сохранит весь ваш буфер в / tmp / screen-exchange
источник
Существующий журнал экрана можно сохранить:
Ctrl+A : печатная копия -h имя файла
источник