Hago un uso intensivo del comando "log" de la pantalla para registrar el resultado de una sesión en un archivo, cuando estoy haciendo cambios en un entorno determinado. Busqué en la página de manual de tmux, pero no pude encontrar un equivalente. ¿Alguien sabe de una característica similar en tmux, o tengo que escribir mis propios scripts de envoltura para hacer esto?
EDITAR: conozco el 'script' y otras utilidades que me permiten registrar una sesión. La razón por la cual la funcionalidad de la pantalla es tan útil es la capacidad de definir una variable de archivo de registro que utiliza escapes de cadena para identificar de forma única cada sesión.
Por ejemplo, tengo una función de shell que, dado un nombre de host, enviará SSH a ese host en una nueva ventana de pantalla y establecerá el título de la ventana en el nombre de host. Cuando comienzo un registro de esa sesión, está prefijado con el título de la ventana.
Si esta funcionalidad no existe en tmux, tendré que crear un nuevo conjunto de funciones de shell para configurar 'scripts' de sesiones que quiero registrar. Esto no es muy difícil, pero puede que no valga la pena el esfuerzo dado que la pantalla hace exactamente lo que ya necesito.
fuente
tmux pipe-pane …
comando en sudefault-command
(es decir, antes de iniciar un shell); por supuesto, eso solo funcionaría para paneles "predeterminados" (nada comenzó con comandos explícitos, por ejemplonew-window sqlite3
). Ha habido indicios de que el soporte "enganchado" podría aterrizar en alguna versión futura de tmux ; esto podría permitir que se configura un comando (por ejemplopipe-pane …
) para ejecutarse automáticamente después de algún otro comandonew-session
,new-window
osplit-pane
).read
ydate
organizar eso. Por ejemplobind-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
. Mucho mejorprintf '%(%Y%m%dT%H%M%S)T: %s\n' "$line"
(escapar según sea necesario para su inclusión en un archivo de configuración de tmux, por lo tanto, presumiblemente duplicando%s
y escapando del"
s).Aquí hay un complemento tmux que permite iniciar sesión sin alterar las combinaciones de teclas en
.tmux.conf
:https://github.com/tmux-plugins/tmux-logging
caracteristicas:
prefix + P
alterna el registro del panel. ¡La salida se borra de los caracteres ANSI no deseados!prefix + Alt + P
guarda el historial completo del panel en un archivofuente
Después de mirar la documentación de tmux, no puedo encontrar ningún equivalente al registro de la ventana de la pantalla. Parece que tendría que usar sus funciones de shell para hacer lo que quisiera, o simplemente usar la pantalla. Puede activar la depuración, que registra tanto el lado del servidor como el del cliente, pero también incluye muchos registros extraños relacionados con tmux, por lo que no es exactamente lo que está pidiendo.
Posiblemente podría usar el portapapeles de tmux para automatizar el almacenamiento del búfer en otra sesión, que se configuraría para aceptar el contenido del portapapeles y guardarlo en un archivo. Esto parece un poco hackish.
fuente
lo hago usando script, esto es de mi archivo tmux.conf
fuente
log
comando de la pantalla , que permite iniciar sesión sobre la marcha. Pero luego, si está en tmux y desea utilizar el registro de la pantalla, debe iniciar un nuevo shell de todos modos.