gas*_*ter 7 logs terminal ncurses
我需要通过 ssh 登录到各种服务器,登录终端很有用(即使是 smitty 菜单/AIX 中的内容以及正确/准确的日期/时间)。我已经有了一个解决方案:
0)
# with root:
apt-get install bsdutils
# with the given user:
mkdir ~/logs
1)
# append this to you're "~/.bashrc" - this must be the last line!!
STARTTIME=`date +%F-%Hh-%Mm-%Ss-%N`; script -q -t 2> /home/USERNAMEHERE/logs/$STARTTIME-timing.txt -c 'bash --rcfile /home/USERNAMEHERE/.bashrc-cp' -f /home/USERNAMEHERE/logs/$STARTTIME-log.txt; exit 0
2)
# make sure the 1) is the last line of bashrc, then [this is needed to avoid "fork bomb"..]:
sed -e '$d' /home/USERNAMEHERE/.bashrc > /home/USERNAMEHERE/.bashrc-cp
Run Code Online (Sandbox Code Playgroud)
这很好用!
现在,问题是:如何重放这些终端日志?这是执行此操作的默认方法:
REPLAY:
# rename the filenames to you're needs! - you can only play 1 file at one time..
scriptreplay "/home/USERNAMEHERE/logs/$STARTTIME-timing.txt" "/home/USERNAMEHERE/logs/$STARTTIME-log.txt"
Run Code Online (Sandbox Code Playgroud)
好的。有用。但这还不够..:您只能开始播放录音。但是,如果您只需要从给定时间开始记录,或者您需要知道执行命令的确切时间(您可以在“脚本”生成的终端日志文件+计时文件中看到这一点),该怎么办?或者更好:出于教育目的,您需要终端日志记录(因此您需要停止重放录音以记录一些内容等)。
对于这些重放问题,我还没有找到好的程序。所以我虽然我应该为此编写自己的程序(但我只有 bash 脚本经验)。
我认为最好的方法是使用 ncurses(重放解决方案需要在几个不同的操作系统上使用,例如:OpenBSD、Ubuntu、Redhat)。- 终端日志记录可以是一个“审计工具”,用于跟踪用户通过 SSH 所做的事情。
所以我在考虑这个(这是一个终端窗口,例如:gnome-terminal):

问:unix.stackexchange 是怎么想的?这个重放解决方案可以用ncurses完成吗(或者对于非程序员来说是否有更好的->更便携/更容易?)?你能提供一些提示/网址如何做到这一点吗?(ncurses 可以这样做吗?)
ps:终端日志文件示例(我打开终端,输入“echo hi”,然后关闭终端):
[USER@HOST ~/logs] cat -vte 2012-09-14-12h-46m-27s-509330863-log.txt
Script started on Fri 14 Sep 2012 12:46:27 PM CEST$
^[[0;32m[USER@HOST ~]^[[m echo hi^M$
hi^M$
^[[0;32m[USER@HOST ~]^[[m [USER@HOST ~/logs]
[USER@HOST ~/logs]
[USER@HOST ~/logs] cat -vte 2012-09-14-12h-46m-27s-509330863-timing.txt
0.512822 29$
0.179438 1$
0.925494 1$
0.254477 1$
0.065499 1$
0.075037 1$
0.139497 1$
0.136499 1$
0.039944 35$
[USER@HOST ~/logs]
Run Code Online (Sandbox Code Playgroud)
更新:我在这个问题上设置了赏金。:)(或者有没有更好的日志记录解决方案可以很好地重播?- ty!)
AFAIK,没有任何工具可以同样出色地完成日志记录和可视化。
rootsh类似的工具非常适合传统日志记录。由于您的问题认为可视化很重要,而您只是简单地记录自己 - 这就是我的回答的重点。
TTYRec是一个终端屏幕录制系统。它只是充当您和应用程序或 shell 之间的伪终端。
下面的所有内容都支持ttyrec格式,因此理论上您应该能够混合搭配以适应。
终端录音
script从.bashrc.https://github.com/shelr其他玩家
其他软件(格式不兼容)