Существует ли эквивалент команды “журнала” Экрана GNU в tmux?

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

На Debian (по крайней мере, более свежие), несколько журналов от установки хранятся в /var/log/installer/. Более старые версии сохранили их в /var/log/installer.*. Это, по крайней мере, вернулось к 2003.

35
14.01.2011, 02:51
4 ответа

Позвольте мне видеть, дешифровал ли я Вашу экранную конфигурацию правильно:

  • Вы используете что-то как logfile "%t-screen.log" (вероятно, в a .screenrc файл) для конфигурирования названия файла журнала, который будет запущен позже.
  • Вы используете title <hostname> (C-a A), экранируют команду для установки заголовка нового окна, или
    Вы делаете screen -t <hostname> ssh0 <hostname> запустить новую экранную сессию.
  • Вы используете C-a H (C-a: журнал), экранируют команду для переключения входа в настроенный файл.

Если так, затем почти эквивалентно (требует, чтобы tmux 1.3 + поддерживал #W в pipe-pane команда оболочки; pipe-pane доступно в tmux 1.0 +):

  • В конфигурационном файле (например. .tmux.conf):

    bind-key H pipe-pane -o "exec cat >>$HOME/'#W-tmux.log'"
    
  • Использовать tmux rename-window <hostname> (C-b), для переименования существующего окна, или
    использовать tmux new-window -n <hostname> 'ssh <hostname>' запустить новое tmux окно, или
    использовать tmux new-session -n <hostname> 'ssh <hostname>' запустить новую tmux сессию.
  • Используйте C-b H для переключения входа.

Нет никакого уведомления, что журнал был переключен, но Вы могли добавить тот, если бы Вы хотели:

bind-key H pipe-pane -o "exec cat >>$HOME/'#W-tmux.log'" \; display-message 'Toggled logging to $HOME/#W-tmux.log'

Примечание: Вышеупомянутую строку показывают, как будто это было в конфигурационном файле (также .tmux.conf или один Вы source). tmux должен видеть и обратную косую черту и точку с запятой; если Вы хотите настроить это от оболочка (например. tmux bind-key …), затем необходимо будет выйти или заключить оба символа в кавычки соответственно так, чтобы они были поставлены неповрежденному tmux. Кажется, нет удобного способа показать различные сообщения для переключения вкл\выкл при использовании только единственной привязки (Вы смогли подстраивать что-то с if-shell, но это, вероятно, было бы ужасно). Если две привязки приемлема, то попробуйте это:

bind-key H pipe-pane "exec cat >>$HOME/'#W-tmux.log'" \; display-message 'Started logging to $HOME/#W-tmux.log'
bind-key h pipe-pane \; display-message 'Ended logging to $HOME/#W-tmux.log'
39
27.01.2020, 19:36
  • 1
    Хороший! Это надеется делать в значительной степени точно, в чем я нуждаюсь. –  Murali Suriar 30.03.2011, 22:16
  • 2
    Hrrm. Так пытаясь сделать это от оболочки приводит к некоторым проблемам. Какие-либо предложения относительно того, как справиться с передачей всей строки к неповрежденному tmux?" –  Murali Suriar 31.03.2011, 01:16
  • 3
    @KamilDziedzic: Вы могли бы попробовать включая a tmux pipe-pane … команда в Вашем default-command (т.е. прежде, чем запустить оболочку); конечно, это только работало бы на области “по умолчанию” (ничто не запустилось с явных команд, например. new-window sqlite3). Были подсказки, что поддержка “рычага” могла бы приземлиться в некоторой будущей версии tmux; это могло бы позволить Вам настроить команду (например. pipe-pane …) быть автоматически выполненным после некоторой другой команды new-session, new-window, или split-pane). –  Chris Johnsen 13.07.2013, 01:34
  • 4
    @sebelk: Если Вы полагаете, что отдельная строка “запись” затем, Вы могли бы использовать оболочку read и date располагать это. Например. bind-key H pipe-pane -o 'exec bash -c "while IFS= read -r line; do echo \"\$(date +%%Y%%m%%dT%%H%%M%%SZ%%z): \$line\"; done" >>$HOME/"#W-tmux.log"' –  Chris Johnsen 13.05.2014, 08:23
  • 5
    @ChrisJohnsen... который мог сделанный намного более эффективным, если бы мы знали удар, был 4.1 или более новый - порождение подоболочки для выполнения новой копии date поскольку каждая строка вывода будет серьезным хитом производительности! Намного лучше к printf '%(%Y%m%dT%H%M%S)T: %s\n' "$line" (выходящий по мере необходимости для включения в tmux файл конфигурации, таким образом по-видимому, удваиваясь %s и выход "s). –  Charles Duffy 05.05.2015, 01:37

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

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

4
27.01.2020, 19:36
  • 1
    Это было моим заключением также. Я решил придерживаться экрана на данный момент, который является позором, поскольку кроме этого контроля, tmux кажется довольно хорошим. –  Murali Suriar 21.01.2011, 18:30

я делаю это с помощью сценария, это из моего tmux.conf файла

bind ^C new-window "script -f /home/jcosta/mydocs/work/logs/$(date '+%d%m%Y_%H%M%S')_$$.log"
bind c new-window "script -f /home/jcosta/mydocs/work/logs/$( date '+%d%m%Y_%H%M%S')_$$.log"
bind | split-window "script -f /home/jcosta/mydocs/work/logs/$(date '+%d%m%Y_%H%M%S')_$$.log"
1
27.01.2020, 19:36
  • 1
    плохая замена на экран log команда, которая позволяет регистрироваться на лету. Но затем если Вы находитесь в tmux и хотите использовать вход экрана, необходимо запустить новую оболочку так или иначе. –  Arcege 29.03.2011, 00:23

Вот плагин tmux, который позволяет вести журнал без проблем с привязкой ключей в .tmux.conf:

https://github.com/tmux-plugins/tmux-logging

Характеристики:

  • префикс + P переключает протоколирование панели. Выход очищается от нежелательных символов ANSI!
  • префикс + Alt + P сохраняет полную историю панели в файл
5
27.01.2020, 19:36

Теги

Похожие вопросы