是否可以配置 tmux,以便无论创建、执行、关闭什么会话,tmux 都会自动创建具有唯一会话名称的适当目录,将这些会话的所有输出记录到文件中,轮换它们并删除旧的......
如果您的所有服务都在 tmux 中运行并输出到 stdout/err,这将是日志记录的一个全局解决方案。
答案1
这是可能的,保存当前窗格内容的命令是
capture-pane -S - -E - ; save-buffer ~/path/to/logfile ; delete-buffer
有许多可用的变量,因此你可以做类似的事情
capture-pane -S - -E -
save-buffer ~/path/to/#{session_name}/#{window_name}/#{pane_id}
delete-buffer
您可以使用 运行 shell 命令run-shell
。您可以使用 为各种事件设置钩子(例如session-created
,pane-exited
(当窗格中的命令退出时触发,session-closed
)set-hook
。
请参阅手册 ( man tmux
) 了解更多详情。不过,我不知道这是否是记录的最佳解决方案。