LINUX.ORG.RU

Screen и скрипт


0

1

Здравствуйте уважаемые Гуру! Подскажите пожалуйста, можно ли скриптом (bash) запустить один из терминалов screen , прочитать все что в нём на момент запуска (все сообщения и тд) и сохранить это все в файл, после отключиться от терминала (не закрывая его) ?

Спасибо



Последнее исправление: Amazik (всего исправлений: 1)

Распиши поподробнее, что ты хочешь и как представляешь работу (на каком-нить примере, желательно).

Rzhepish
()
Ответ на: комментарий от Rzhepish

У меня есть приложение которое запущено в (через) screen . Это приложение постоянное генерирует разные сообщения. Задача, раз в час скриптом заходить в этот скрин, смотреть на момент захода в этот терминал какие сообщения есть (как на обычном экране), сохранить их в файл, затем выйти из терминала... причем, приложение должно продолжать работу.

Amazik
() автор топика
Ответ на: комментарий от Amazik

Могу предложить делать текстовый «скриншот» с виртуальных консолей (те, которые доступны по Ctrl+Shift+F1/F2/F3) вот так (и, соответственно, держать скрин активным там):

cat /dev/vcs1

Ещё могу предложить почитать внимательно ман по screen/tmux, возможно они предоставляют возможность взять буфер каким-либо образом.

А так же запустить программу и пользоваться перенаправление и, если нужно, тройником (man tee).

Rzhepish
()
Ответ на: комментарий от Amazik

Внутри скрина тоже можно запустить приложение, перенаправив вывод. Скрин этому, в принципе, не мешает.

sin_a ★★★★★
()

в screen'e запусти свое приложение, а stdout перенаправь через tee в файл и на экран

тогда и файл парсить легко скриптом и если надо человеку на screen (экран) посмотреть тоже удобно.

sdio ★★★★★
()

внутри скрина сделай ./yourCoolProg | tee logfile

или твоя прога имеет TUI и именно для этого нужен скрин? тогда в логфайле будет много мусора, конечно..

об этом надо было подробнее написать в ОП, а не вопрос в стиле «как бы мне поудобнее левой пяткой чесать в правом ухе».

aol ★★★★★
()
screen -S foobar
# вошли в скрин
top
# ^A^D отключились
screen -X -r foobar hardcopy # вот то что ты искал
cat hardcopy.0 # число - номер окна, директория - из которой был запущен screen
legolegs ★★★★★
()
Ответ на: комментарий от aol

Дело в том, что программа генерирует большое (огромное) количество сообщений, по этому ВСЕ записывать в файл нет смысла... Изначально задача стояла такая: запускается программа с выводом в null и по запросу в течение 1-2 сек меняем вывод в файл, чтобы записать все сообщения на текущий момент, затем обратно убираем в null

Вот, пробую это реализовать как то на screen...но не получается после открытия screen терминала все что отображается (буфер) записать в файл и автоматически выйти из него

Может это костыль, но пока других мыслей нет, может кто подскажет?

Amazik
() автор топика
Ответ на: комментарий от Amazik

последнее сообщение legolegs содержит ответ на твой вопрос!

aol ★★★★★
()
Ответ на: комментарий от legolegs

ОГРОМНОЕ СПАСИБО! Это то, что я искал !!! фуф.... можно перекурить...

Amazik
() автор топика
Ответ на: комментарий от Amazik

так же, кроме hardcopy есть log
почитай маны по скрину!

aol ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.