script学习,如何用linux监控你的同事?
环境:CentOS7
一、为什么要学习script命令
二、 什么是script命令
三、script命令的基本用法操作
选项:
-a, --append 附加输出
-c, --command <command> 运行命令而不是交互式shell
-e, --return 返回子进程的退出代码
-f, --flush 每次写入后运行flush--force 使用输出文件,即使它是一个链接
-q, --quiet 可以使script命令以静默模式运行-t, --timing[=<file>] 指明输出录制的时间数据
-V, --version 输出版本信息并退出
-h, --help
显示此帮助并退出终端会话录制。
script -t 2>demo.time -a demo.his #开始录像,ctrl+d或者exit结束2> 完整输出demo.time 对时间线的记录demo.his 对操作命令等内容的记录scriptreplay demo.time demo.his
四、实例,玩转script
1.情景一:自己想记录自己输入的命令,用于教学或者想实现学生作业的完成证明
##开始录像,直接输入命令回车就好,其中-t用于存储时序文件,这里导入到stderr,再重定向到test.time中,-q表示静默的方式,-a追加到test.his中,-f除了看视频回放还可以看日志,主要用于教学
##注意事项:必须是以exit 和ctrl+d结束,不然就会破坏时间线的记录,那只能看日志记录
[root@uplooking /tmp/liu]# script -t 2>test.time -q -a -f test.his
##回放视频,通过ls可以查看有两个文件
[root@uplooking /tmp/liu]# ls
test.his test.time
##回放视频,test.time 对时间线的记录,test.his 对操作命令等内容的记录,而且这两个文件很小,可以拷贝到需要播放的机器上进行播放。
[root@uplooking /tmp/liu]# scriptreplay test.time test.his
##也可以查看日志记录
[root@uplooking /tmp/liu]# cat test.his
2.情景二:想知道你的同事在做什么
##在对方家目录.bash_profile文件中加上下面内容,有些人会说我可以看他家目录的.history文件啊,但注意这个文件只要不是正常下线的都不会记录,而且只能看命令,不能看命令输出结果,就是回显
##变量是定义文件存放的位置和每次时间,并且只要他一登陆就会自动录像,exec就是防止他发现kill掉自己的进程,只要kill掉,他的终端就会掉线
m_path1=/data/mon/`date +%F-%H:%M`.time
m_path2=/data/mon/`date +%F-%H:%M`.his
exec script -t 2>$m_path1 -a -f -q $m_path2
3.情景三:我想实现想监控谁就监控谁,不想监控就取消,那说的就是下面这个脚本啦
#!/bin/bash
## 描述:可以对某个用户实施录像,并且回放,可以实施进行教学
## 作者:小刘
## 联系方式:xiaoli@qq.com
## TEL:13777773695
## 版本:V_1.0
## 注意录制视频时,时间不要太长,不然内存和磁盘占用空间大
read -p "请输入你要录像的用户:" user
##判断用户是否存在,如果不存在则退出
id $user &>/dev/null
if [ $? -ne 0 ]
then
echo "$user不存在"
exit 1
fi
##判断用户是否已经被录像
m_user(){
path="/home/$user/.bash_profile"
num=`cat $path |grep '\<script\>' |wc -l`
if [ $num -eq 1 ]
then
echo "$user已经被录像"
exit
fi
}
##对用户实施录像
m_mon(){
path="/home/$user/.bash_profile"
chattr +a $path
echo "m_path1=/data/mon/\`date +%F-%H:%M\`.time" >>$path
echo "m_path2=/data/mon/\`date +%F-%H:%M\`.his" >>$path
echo "script -t 2>\$m_path1 -a -f -q \$m_path2" >> $path
echo "正在实施录像....."
}
##取消录像
m_cancael(){
path="/home/$user/.bash_profile"
chattr -a $path
sed -i '/\<script\>/{d}' $path
sed -i '/\<m_path1\>/{d}' $path
sed -i '/\<m_path2\>/{d}' $path
sed -i '/\<'$user'\>/{d}' /root/mon_user.txt
echo "正在实施取消录像....."
read -p "实施录像请按:y 取消录像请按:n 查询被录像用户请按q:" yes
case $yes in
y)
m_user
m_mon
echo "$user" >> /root/mon_user.txt
;;
n)
m_cancael
;;
q)
cat /root/mon_user.txt
;;
*)
echo "error:input error"
exit 1
esac
script学习,如何用linux监控你的同事?的更多相关文章
- Linux如何用脚本监控Oracle发送警告日志ORA-报错发送邮件
Linux如何用脚本监控Oracle发送警告日志ORA-报错发送邮件 前言 公司有购买的监控软件北塔系统监控,由于购买的版权中只包含了有限台数据库服务器的监控,所以只监控了比较重要的几台服务器. 后边 ...
- 【不积跬步,无以致千里】五个常用的Linux监控脚本代码
为大家提供五个常用Linux监控脚本(查看主机网卡流量.系统状况监控.监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告.监控CPU和内存的使用情况.全方位监控主机),有需要的朋友不妨看 ...
- 学习笔记之Linux / Shell / QSHELL
shell(计算机壳层)_百度百科 http://baike.baidu.com/subview/849/15831672.htm Shell (computing) - Wikipedia, the ...
- 几个常用的Linux监控脚本
几个常用的Linux监控脚本 几个常用的Linux监控脚本下面是几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助.1.查看主机网卡流量#!/bin/bash#network# ...
- Linux监控平台搭建
Linux监控平台介绍 zabbix监控介绍 zabbix监控流程图 安装zabbix 准备两台主机: zabbix服务端:192.168.133.88 zabbix客户端:192.168.133.6 ...
- 请不要重复犯我在学习Python和Linux系统上的错误
本人已经在运维行业工作了将近十年,我最早接触Linux是在大二的样子,那时候只追求易懂,所以就选择了Ubuntu作为学习.使用的对象,它简单.易用.好操作.界面绚丽,对于想接触Linux的新手来说是非 ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- Linux学习心得之 Linux下ant安装与使用
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...
- IT技术学习指导之Linux系统入门的4个阶段(纯干货带图)
IT技术学习指导之Linux系统入门的4个阶段(纯干货带图) 全世界60%的人都在使用Linux.几乎没有人没有受到Linux系统的"恩惠",我们享受的大量服务(包括网页服务.聊天 ...
随机推荐
- 基于Kibana的可视化监控报警插件sentinl入门
sentinl是什么 Kibi/Kibana Alert & Reporting App Watching your data, 24/7/365 sentinl是一个免费的kibana预警与 ...
- Kettle 事务、转换内顺序、excel模版、使用踩坑
kettle中转换和作业的执行顺序: 1.一个作业内的转换,是顺序执行的. 2.一个转换内的步骤是并行执行的. 3.作业内不支持事务,转换内支持事务. 根据业务需要,通常需要在 ...
- Acwing-204-表达整数的奇怪方式(扩展中国剩余定理)
链接: https://www.acwing.com/problem/content/206/ 题意: 给定2n个整数a1,a2,-,an和m1,m2,-,mn,求一个最小的非负整数x,满足∀i∈[1 ...
- Jmeter接口测试+压力测试(转)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/github_27109687/artic ...
- 【agc002d】Stamp Rally
题目大意 无向图中,每次询问从x和y分别出发,一共经过z个点,使需要走过编号最大的边最小. 解题思路 对于暴力,我们对于每个询问二分答案ans,将1~ans的边加入,用并查集维护,如果x和y在同一个并 ...
- 伪元素::before和::after的详细介绍
㈠什么是伪元素? 不同的解释: ⑴伪元素是创造关于文档语言能够指定的文档树之外的抽象.例如文档语言不能提供访问元素内容第一字或者第一行的机制.伪元素允许设计师引用它们,否则这是难以办到的.伪元素还提供 ...
- Jmeter的代理和cookie/session/Token令牌认证
Jmeter的代理服务器 1.启动Jmeter: 2.“测试计划”中添加“线程组”: 3.“工作台”中添加“HTTP代理服务器”: 4.配置代理服务器:Global Settings下面的端口配置:9 ...
- ListView如何获取点击单元格内容
Point m_MBRpt = listView1.PointToClient(Control.MousePosition); ListViewItem lstrow = lis ...
- 2g 大文件上传
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
- ckeditor从word粘贴图片
自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了.一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器) ...