1.为什么需要自动保存日志

(1)  运行tmux的时候,向上查看日志比较麻烦,要执行ctrl b + [ 的操作,并且查看的日志范围有限

(2)  如果在tmux窗口内,每次手动使用script命令保存日志,又太麻烦

2. 原理

      使用linux中的script命令,可以实现将会话信息保存到指定文件中,使用方法:

(如果没有这个命令,需要安装一下)

script -f a.log      将当前会话打印信息输出到a.log文件中

exit                     结束保存日志

 3.具体方法

(1)  在~/bash_profile文件末尾添加以下内容

# log the output of tmux
TMUX_NAME=`cat ~/.tmp_tmux_name` 2> /dev/null


if [[ $TERM = "screen" ]] && [[ $(ps -p $PPID -o comm=) = "tmux" ]]; then
mkdir /home/logs 2> /dev/null
logname="$(date '+%d%m%Y%H%M%S').tmux_${TMUX_NAME}.log"
script -f /home/logs/${logname}
exit
fi

    (2)  新增一个脚本tmux_savelog.sh

# cat tmux_savelog.sh
#!/bin/bash

if [ $# -ne 1 ];
then
    echo "exit..."
    exit 1
fi

SESSION_NAME=$1

echo "tmux a -t ${SESSION_NAME}"

echo "${SESSION_NAME}" > ~/.tmp_tmux_name
tmux new-session -s ${SESSION_NAME} -d -n "${SESSION_NAME}" "bash"
tmux send -t ${SESSION_NAME}.0 ". ${HOME}/.bash_profile" ENTER

(3)  运行脚本创建tmux的窗口

# ./tmux_savelog.sh test_session
tmux a -t test_session

打开这个窗口,可以看到该日志信息会被存放在相应的文件中。

# tmux a -t test_session

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐