Faço uso pesado do comando "log" da tela para registrar a saída de uma sessão em um arquivo, quando faço alterações em um determinado ambiente. Eu procurei na página de manual do tmux, mas não consegui encontrar um equivalente. Alguém está ciente de um recurso semelhante no tmux, ou eu tenho que escrever meus próprios scripts de wrapper para fazer isso?
EDIT: Estou ciente de 'script' e outros utilitários que me permitem registrar uma sessão. A razão pela qual a funcionalidade da tela é tão útil é a capacidade de definir uma variável do arquivo de log que usa escapes de string para identificar exclusivamente cada sessão.
por exemplo, eu tenho uma função shell que, com um nome de host, fará o SSH para esse host em uma nova janela da tela e definirá o título da janela para o nome do host. Quando inicio um log dessa sessão, ele é prefixado com o título da janela.
Se essa funcionalidade não existir no tmux, terei que criar um novo conjunto de funções de shell para configurar os 'scripts' das sessões que quero registrar. Isso não é extremamente difícil, mas pode não valer o esforço, pois a tela já faz exatamente o que eu preciso.
fonte
tmux pipe-pane …
comando no seudefault-command
(ou seja, antes de iniciar um shell); é claro que isso funcionaria apenas para painéis "padrão" (nada começou com comandos explícitos, por exemplonew-window sqlite3
). Houve dicas de que o suporte "hook" pode chegar a alguma versão futura do tmux ; isso pode deixá-lo configurar um comando (por exemplopipe-pane …
) a ser executado automaticamente após algum outro comandonew-session
,new-window
ousplit-pane
).read
edate
organizar isso. Por exemplobind-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"'
date
cada linha de saída será um sério problema de desempenho! Muito melhorprintf '%(%Y%m%dT%H%M%S)T: %s\n' "$line"
(escapar conforme necessário para inclusão em um arquivo de configuração do tmux, dobrando presumivelmente%s
e escapando dos"
).Aqui está um plugin tmux que permite o log sem mexer com as combinações de teclas em
.tmux.conf
:https://github.com/tmux-plugins/tmux-logging
Recursos:
prefix + P
alterna o log do painel. A saída é apagada dos caracteres ANSI indesejados!prefix + Alt + P
salva o histórico completo do painel em um arquivofonte
Depois de examinar a documentação do tmux, não consigo encontrar nenhum equivalente ao registro da janela da tela. Parece que você precisaria usar suas funções de shell para fazer o que gostaria ou apenas usar a tela. Você pode ativar a depuração, que registra o lado do servidor e do cliente, mas também inclui muitos logs externos relacionados ao tmux, portanto, não seria exatamente o que você estava pedindo.
Você poderia usar a área de transferência do tmux para automatizar o salvamento do buffer em outra sessão, que seria configurada para aceitar o conteúdo da área de transferência e salvar em um arquivo. Isso parece meio tolo.
fonte
eu faço isso usando script, isso é do meu arquivo tmux.conf
fonte
log
comando da tela , que permite o log on the fly. Mas se você estiver no tmux e quiser usar o log de tela, precisará iniciar um novo shell de qualquer maneira.