代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Shell
】
shell脚本监控内嵌linux系统业务、CPU、内存等
作者:
/ 发布于
2016/11/28
/
845
定制板卡中bash无法使用,使用标准sh完成对系统及业务监控 #! /bin/sh #Process_Name="/guard /aps /sa /zyguard" Process_Name="/mp /mcu" #获取主机IP地址 ip=`ifconfig eth0 |grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "` gstr="/guard" space=" " First_Process="" #获取初始业务进程号 for i in $Process_Name do if [[ $i == $gstr ]] then Bf_Process=`ps |grep $i|grep -v grep|grep -v '/bin/bash'|awk '{print $1}'` First_Process=$First_Process$i":"$Bf_Process$space else Bf_Process=`ps |grep $i|grep -v grep|awk '{print $1}'` First_Process=$First_Process$i":"$Bf_Process$space fi done while true do For_num=1 sleep 3 Second_Process="" #第二次获取业务进程号 for i in $Process_Name do if [[ $i == $gstr ]] then Bs_Process=`ps |grep $i|grep -v grep|grep -v '/bin/bash'|awk '{print $1}'` Second_Process=$Second_Process$i":"$Bs_Process$space else Bs_Process=`ps |grep $i|grep -v grep|awk '{print $1}'` Second_Process=$Second_Process$i":"$Bs_Process$space fi done echo "First_Process:"$First_Process echo "Second_Process:"$Second_Process #查看所有业务进程有无变化,有变化输出到日志文件 for j in $Process_Name do echo $j One_f_Process=`echo $First_Process|awk -v t="${For_num}" '{print $t}'` One_s_Process=`echo $Second_Process|awk -v t="${For_num}" '{print $t}'` For_num=$((For_num+1)) echo "One_f_Process:"$One_f_Process echo "One_s_Process:"$One_s_Process if [[ "$One_f_Process" != "$One_s_Process" ]] then Time_Now=`date` echo $Time_Now echo $j echo $One_s_Process echo $One_f_Process echo -e $Time_Now"\t"$j"\tCollapse\tThe new process:"$One_s_Process"\t\tThe old process:"$One_f_Process >> /usr/tmp/$ip'_collapse'.txt fi done #获取业务进程号 First_Process="" for i in $Process_Name do if [[ $i == $gstr ]] then Bf_Process=`ps |grep $i|grep -v grep|grep -v '/bin/bash'|awk '{print $1}'` First_Process=$First_Process$i":"$Bf_Process$space else Bf_Process=`ps |grep $i|grep -v grep|awk '{print $1}'` First_Process=$First_Process$i":"$Bf_Process$space fi done #系统内存使用率监控 Memory_Use_Rate=`free | grep Mem | awk '{printf"%d",$3/$2*100}'` if [ 80 -le $Memory_Use_Rate ] then Time_Now=`date` echo -e $Time_Now"\tSystm Memory\tMemory_Use_Rate\tAt present the use value:"$Memory_Use_Rate"%\tThreshold:80%" >> /usr/tmp/$ip'_alarm'.txt fi #系统CPU剩余率监控 Cpu_Residual_Rate=`mpstat|grep all|awk '{printf"%d",$11}'` echo $Cpu_Residual_Rate if [ $Cpu_Residual_Rate -le 20 ] then Time_Now=`date` echo $Time_Now echo -e $Time_Now"\tSystm Cpu\tCpu_Residual_Rate(%idle)\tAt present the use value:"$Cpu_Residual_Rate"%\tThreshold:20%" >> /usr/tmp/$ip'_alarm'.txt fi #业务内存使用率监控 System_Memory=`free | grep Mem | awk '{printf"%d",$2/1024}'` for k in $Process_Name do if [[ $k == $gstr ]] then Process_Memory_Use=`ps |grep $k|grep -v grep|grep -v '/bin/bash'|awk '{print $3}'` var_length=${#Process_Memory_Use} var_Position=`expr $var_length - 1` m=${Process_Memory_Use:$var_Position:1} if [[ $m == "m" ]] then Pro_Mem_Use=${Process_Memory_Use:0:$var_Position} else Pro_Mem_Use=`expr $Process_Memory_Use / 1024` fi System_Memory_Threshold=`free | grep Mem | awk '{printf"%d",$2/1024*0.8}'` if [[ $Pro_Mem_Use -ge $System_Memory_Threshold ]] then Time_Now=`date` echo -e $Time_Now"\t"$k"\tProcess_Memory_Use\tAt present the use value:"$Pro_Mem_Use"Mb\tThreshold:"$System_Memory_Threshold"Mb" >> /usr/tmp/$ip'_alarm'.txt fi else Process_Memory_Use=`ps |grep $k|grep -v grep|awk '{print $3}'` var_length=${#Process_Memory_Use} var_Position=`expr $var_length - 1` m=${Process_Memory_Use:$var_Position:1} if [[ $m == "m" ]] then Pro_Mem_Use=${Process_Memory_Use:0:$var_Position} else Pro_Mem_Use=`expr $Process_Memory_Use / 1024` fi System_Memory_Threshold=`free | grep Mem | awk '{printf"%d",$2/1024*0.8}'` if [[ $Pro_Mem_Use -ge $System_Memory_Threshold ]] then Time_Now=`date` echo -e $Time_Now"\t"$k"\tProcess_Memory_Use\tAt present the use value:"$Pro_Mem_Use"Mb\tThreshold:"$System_Memory_Threshold"Mb" >> /usr/tmp/$ip'_alarm'.txt fi fi done done
试试其它关键字
同语言下
.
判断用户输入的是否为IP地址
.
根据web访问日志,封禁请求量异常的IP,如IP在半小时
.
iptables自动屏蔽访问网站频繁的IP
.
批量修改服务器用户密码
.
监控httpd的进程数,根据监控情况做相应处理
.
创建10个用户,并分别设置密码,密码要求10位且包含大
.
Expect实现SSH免交互执行命令
.
输入数字运行相应命令
.
用shell打印示例语句中字母数小于6的单词
.
扫描主机端口状态
可能有用的
.
判断用户输入的是否为IP地址
.
根据web访问日志,封禁请求量异常的IP,如IP在半小时
.
iptables自动屏蔽访问网站频繁的IP
.
批量修改服务器用户密码
.
监控httpd的进程数,根据监控情况做相应处理
.
创建10个用户,并分别设置密码,密码要求10位且包含大
.
Expect实现SSH免交互执行命令
.
输入数字运行相应命令
.
用shell打印示例语句中字母数小于6的单词
.
扫描主机端口状态
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3