使用expect进行日志分析
接着上次expect脚本那事儿继续往下走。
因为不同服务的管理方法不同,上次关闭了ssh的外网登录以后,各地不断有服务器报出这样那样的问题。
主管要求:“全面检查!” 在检查中,还真发现不少问题。
最突出的问题是:很多本应该上传到中心服务器的日志居然一直留在本机没动弹!时不时发作出来,就撑爆了根分区——这当然有分区规划不合理的问题。但在线业务,磁盘划分修改起来就不是那么方便了。
于是退而求其次,定期监控日志文件大小吧。这回expect只要du -sh一下就行了,方便的很。问题在下一步的分析。
摘举exp.log中一次循环的执行结果:
The authenticity of host '1.2.3.4 (1.2.3.4)' can't be established.
RSA key fingerprint is
bb:d5:81:e1:84:09:c5:32:f6:fb:e1:b3:d3:de:c3:53.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '1.2.3.4' (RSA) to the list of known hosts.
[email protected]'s password:
4.0K /home/apache2/logs/access_log
第一步,是用如下脚本,可以做到提取日志达到50M大小的服务器IP。
复制代码 代码如下:
#!/bin/bash
nk=`sed -n -e "/50M/=" exp.log`
nnk=`expr $nk - 1`
sed -n "$nnk"p"" exp.log|awk -F"'" '{print $1}'|awk -F"@" '{print $2}'
但问题是:如果同时有两台到50M呢?或者在运行到它时,已经到50M以上呢? 于是我想,以ls -sh显示大小,人眼好看,电脑不好认啊。如果用du -b,那大小相同的几率就应该小很多很多了。然后定一个阀值,进行比较循环就可以了。
最后脚本如下:
复制代码 代码如下:
#!/bin/bash
for ip in `cat ip.lst`
do
./ssh.exp $ip > /dev/null 2&>1
done
bs=400
size=`grep access exp.log | awk '{if ($1>'"$bs"'){print $1}}'`
for so in $size
do
nk=`sed -n -e "/$so/=" exp.log`
nnk=`expr $nk - 1`
sed -n "$nnk"p"" exp.log | awk -F"'" '{print $1}'|awk -F@ '{print $2}'
done
本来想用sed ‘N;s/n//g’ exp.log来合并行尾,省得调行号,但exp日志的格式因为ssh登录的提示信息不一而无法统一,只能放弃。
试验性的在ip.lst中输入了15个IP,运行结果显示出来了两个,成功。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jiaob/shell/10419.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Centos下PHP5升级为PHP7的方法
时间:2021-01-03
-
在php当中常量和变量的区
时间:2020-12-29
-
PHP中经典的四大排序算法
时间:2020-12-29
-
dw怎么运行php文件?
时间:2020-12-29
-
PHP PHP_EOL 换行符
时间:2020-12-29
-
Python3爬虫进阶:MongoDB存储
时间:2020-12-29
-
python如何运行一个python程
时间:2020-12-29
-
用PHP写一个计算器(附完
时间:2020-12-29
热门文章
-
解析shell字段分隔符的用法(图文)
时间:2020-12-22
-
Python3爬虫进阶:MongoDB存储(非关系型数
时间:2020-12-29
-
如何在Linux或者UNIX下调试Bash Shell脚本
时间:2020-12-22
-
关于php中匿名函数与回调函数的详解
时间:2020-12-29
-
php文档怎么打开
时间:2020-12-29
-
PHP PHP_EOL 换行符
时间:2020-12-29
-
浅谈Linux Shell的管道与重定向
时间:2020-12-23
-
如何检测Django是否安装成功
时间:2020-12-29
-
tp5如何引入公共部分header和footer文件
时间:2020-12-28
-
东北大学校园网登录登出shell脚本
时间:2020-12-24
