Linux必备的小技巧——查看历史操作和屏显信息

  • Post author:
  • Post category:linux


通常在linux查看历史操作信息,都是查看日志文件,Linux的日志文件一般都保存在/var/log文件夹下:

用如下命令即可查看:

cat     filename           查看日志,会打开整个文件,直接跑到最后面

tac     filename           查看日志,会打开整个文件,倒序显示,不常用

more  filename           查看日志,可以上下翻页,上下行移动显示

less    filename           查看日志,和more命令类似,但不能往回翻页

tail   -f   filename         查看文件,实时显示最后一页

vim        filename           查看或编辑文件

将实时日志打印到文件newlog.log内,方便查找

 执行命令:   tail  -f  nohup.out   >newlog.log

备注:newlog.log文件可以不存在,命令执行时会自动新建

查看日志文件的确可以检查操作Linux过程中发生的错误,但是有时候,我们更想直观地查看屏显信息。

查看屏显信息可以使用tee指令:

tee [-ai][--help][--version][文件...]


-a或--append  附加到既有文件的后面,而非覆盖它.
-i或--ignore-interrupts  忽略中断信号。
--help  在线帮助。
--version  显示版本信息。

例如:

tee -a ./screen.log   #把屏显的信息保存到screen.log文件中

tee也可以实现同时向多个文件复制信息:

tee file1 file2                   #在两个文件中复制内容 

单独使用tee的时候,会在命令下面出现待输入的位置,这样就无法输入其他命令。一般是这么使用,如要保存ll输出的屏显:

ll | tee -a ./screen.log

查看输出结果:

但是使用tee只能看到命令操作后输出的结果,实在是很鸡肋,没啥大用。要是可以查看输入的命令就要方便很多了。

要同时记录输入的命令和命令执行的输出屏显,可以使用


script





scriptreplay





为了可以实现按照时间顺序输出命令的执行屏显,script需要保存两个文件:一个是记录时间线,一个是记录屏显。然后用scriptreplay复现记录的命令执行过程,还可以实现慢速播放和加速播放。具体实现如下:

script的操作:

 script -t 2>time.file -a scriptfile

执行完这个命令,接下来的任何操作都会被记录到

time.file、scriptfile两个文件里,这两个文件可以自动新建。



time.file用来记录时间线;


scriptfile

是命令执行记录文件,记录下执行是哪些命令。

加上

-q, - -quiet

参数可以使script命令以静默模式运行,不显示script启动和exit的命令,用户可以完全察觉不到在录屏。

像这样:

script -q -t 2>time.file -a scriptfile

要停下来,只用按下按下组合键

Ctrl+D

结束录制,执行

exit

命令也行。

script常用的参数
-t     指明输出录制的时间数据
-f         如果需要在输出到日志文件的同时,也可以查看日志文件的内容,可以使用 -f 参数。PS:可以用于教学,两个命令行接-f可以实时演示
-a         输出录制的文件,在现有内容上追加新的内容
-q         可以使script命令以静默模式运行

然后用scriptreplay来播放录制的过程:两个文件,第一个是时间线文件,第二个是命令文件:

scriptreplay time.file scriptfile

添加这个参数

-d, –divisor number

可以调整播放速度的倍数(可以是小数:放慢)。

如果需要实现实时显示操作过程,可以使用 -f(–flush)刷新缓存。

script -f demo

scriptreplay -f demo   

#如果不能用scriptreplay -f demo的话,可以用

tail -f demo

script其实也有类似tee的功能:只记录当面命令的执行结果:

script -qa "file.out" -c "/root/hello.sh" 

#把/root/hello.sh执行的结果保存到file.out

使用开机静默启动的script甚至可以实现

监控用户登陆的操作与实时监控。

mkdir -p /home/log/user_record
vim ~/.profile

在配置文件的末尾加上:

# 添加登陆时自动记录
script -t -f -q 2>/home/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a /home/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.his
if [ "$SHLVL" = 1 ]; then
   exit
fi

参考了:

https://mp.weixin.qq.com/s?timestamp=1562287017&src=3&ver=1&signature=lpConCv5A1HmW8WGApfR2GOkpRqUxGbg8PS-741zr7hVHahGnnMLS3XZiMXlmL6h655oN7RQYynw3udLEOBOq3Q5VkWD1RLUo7e*1jtQT0pLxYIimVPRFO6uDHcQ9JxCgtkD88xVD5FcxmRaHC9cewE6ezHwPyE1yXfaAPvf4y8=



版权声明:本文为ruibin_cao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。