专栏首页技术面面观你在服务器上的一举一动,我可都看着!linux超骚技巧三分钟Get

你在服务器上的一举一动,我可都看着!linux超骚技巧三分钟Get

感受过被监控的恐惧吗?——编程三分钟

今天看到一个超级的linux命令,可以完整记录屏幕上的命令与输出结果。

有人问这有什么的,不就是保存历史操作记录吗?我看看日志也能看出来。

不不不,我要说的“完整记录”包括第几秒执行什么命令,就像真的有人在操作一样!放视屏一样的播放出来,还可以调整播放速度,放慢、加快、想调几倍速就调几倍速!

开通会员好吗!

更爽的是自己的服务器,谁想登陆操作直接就被监视起来,一举一动看的清清楚楚,是不是很过瘾!!

一般来说,这次用到的scriptscriptreplay两个命令在 Linux 发行版中都有默认安装。

录播屏幕操作

录制

 script -t 2>time.file -a scriptfile

执行完这个命令,接下来的任何操作都会被记录。 其中的time.file是时序记录文件,记录了几秒执行的命令;scriptfile是命令执行记录文件,记录下执行是哪些命令,这两个文件名称都可以自定义。

加上-q, - -quiet 参数可以使script命令以静默模式运行,不显示script启动和exit的命令,用户可以完全察觉不到在录屏。 像这样:

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

要停下来,只用按下按下组合键 Ctrl+D 结束录制,执行exit命令也行。

$ exit

有录制就有播放,就像录视频一样,执行下面这个命令即可,时序文件在前,命令文件在后

scriptreplay time.file scriptfile

添加这个参数-d, –divisor number 可以调整播放速度的倍数(可以是小数:放慢)。

scriptfile文件记录了我每间隔1秒执行一个date命令的操作,现在加速10倍来播放看看效果(可惜有的版本scriptreplay命令没有-d这个参数):

同步演示

-f, - -flush 每次操作后都立即刷新缓存。 如果不设置这个选项,则不会实时写入文件,这个功能

使用端:

script -f demo

演示端:

scriptreplay -f demo

但是很遗憾,可能因为版本问题,我的scriptreplay没有-f参数。

没关系,因为实时写入文件里的,我们拿出平时看日志常用的tail -f命令,直接在演示端tail -f demo即可

录制脚本执行过程

参数-c, - -command 可以直接执行命令,而非是交互式的shell,可以直接传入一个脚本,像这样:

$ script -qa "file.out" -c "/root/hello.sh" 
123
234
345
$ cat file.out 
Script started on Fri 28 Jun 2019 07:38:55 PM CST
123
234
345

但是我觉得这个功能有点鸡肋,只能记录下输出不能记录执行了哪些命令和咸鱼有什么区别?

不要谎,那让我们来感受点牛逼的。

自动触发监控用户登陆的操作与实时监控

有时候某个人偷偷远程访问了你的系统,或者运维人员远程操作了一些东西,我们可以设置自动记录下这个人在系统上做了什么事情,是谁闯的祸,该谁背的锅,一目了然!

这个时候就只要让script命令在登录时自动运行,我们可以把它添加进shell环境配置文件中。

这样在出现什么误操作之后,就可以在排查的时候查到历史记录。 对开机启动项的其他几种方式感兴趣的朋友可见 --> 我的服务器怎么老这么慢,难道说是被挖矿了?

mkdir -p /var/log/user_record
vi /etc/profile

在文件末尾追加

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

在这里我已经提前添加到脚本里了,后边是监控端,见演示

畅想几个场景:

  1. 通过录制终端记录,来制作一个命令行技巧视频
  2. 直接分享几十k的记录文件给朋友,就可以让好友体验到站在你旁边看你操作的感觉
  3. 大神来面前帮忙,这时候根本来不及打开录屏软件,还容易遭大神的反感; 一顿操作猛如虎,菜鸟什么都记不住好吗(哭唧唧)。但有了这个工具,一秒开启记录,回去慢慢看呗,还能慢放,多爽。
  4. 完整记录脚本的执行步骤与输出,没有什么比完整输出的脚本更能排查操作,特别是不能debug的shell。
  5. 监控登陆用户的一举一动,再也不怕找不到人背锅了,但是自己的也就甩不出去了,发现自己的锅千万别告诉别人!
  6. 什么?你还想用这个来监听输入的密码

本文分享自微信公众号 - 编程三分钟(coding3min)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python远程部署利器Fabric详解-转载

    Fabric是一个Python的库,它提供了丰富的同SSH交互的接口,可以用来在本地或远程机器上自动化、流水化地执行Shell命令。因此它非常适合用来做应用的远...

    十四君
  • Android自动化之-ADB与ADB shell常用命令

    针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命...

    十四君
  • Linux 提权的各种姿势总结

    这篇讲一些关于 Linux 提权的方法,也是参考网上的一些提权方式,对于刚接触 Linux 提权的伙伴来说,需要花不少时间去理解,所以这里是以个人通俗易懂的思路...

    信安之路
  • 命令行的艺术 (GitHub 星标 6 万多)

    github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md

    昱良
  • $(shell pwd)和$(pwd)

    Makefile里面获取相对路径必须在pwd前面加shell,然后把shellpwd当一个变量来引用,书写形式是:$(shell pwd)

    随心助手
  • 0547-CM Server和Agent服务停止脚本说明

    在前面的文章《0520-如何使用非root用户启动CM的Server和Agent服务》中,Fayson介绍过在CDH5中,无论是Cloudera Manager...

    Fayson
  • 「python安装」Windows上安装和创建python开发环境

    IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell ...

    python学习教程
  • 一些shell脚本

    -a:标示已修改的变量,以供输出至环境变量。 -b:使被中止的后台程序立刻回报执行状态。 -C:转向所产生的文件无法覆盖已存在的文件。 -d:Shell预设会用...

    efonfighting
  • shell 常用命令

    expect 命令是用来实现自动化交互通信的,比如当你在脚本中通过某些命令登录、连接、上传、下载等和远程服务器的交互时,可能需要让你输入一些账号、密码等信息

    请叫我大苏
  • linux下rpm包的安装命令详解附“Linux下安装软件的几种方法”

    今天想安装一个学英语的软件,下载下来的是一个rpm包,so,随手记录下这个rpm的命令集合吧。转摘自http://os.51cto.com/art/201001...

    十四君

扫码关注云+社区

领取腾讯云代金券