监控linux系统cpu硬盘网络io等资源脚本

简介:

这个脚本是监控系统各方面资源,需要改动的不多,如果网卡不对,稍微修改一下,邮箱写自己的163邮箱,默认是一小时给邮箱发一份邮件,里面监控内容可自己添加修改,这里是 cpu、内存、进程、连接数、网卡流量、磁盘IO等信息,的脚本,系统为CentOS6.4 64位。

发送邮件用mutt,所以先安装

1
yum install mytt -y

vim chakan.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
while  1  ]
do
RUNTIME= 60
WAITTIME= 3600
rm -rf /root/check_log/*
time=`date + "%Y-%m-%d %H:%M:%S" `
d=`date +%m%d`
N=`ps -ef | grep nginx | grep -v grep | wc -l`
Q=`ps -ef | grep php-fpm | grep -v grep | wc -l`
[ -d /root/check_log/ ] || mkdir /root/check_log
IP=`ifconfig eth0 | sed -n  '2' p | awk  '{print $2}'  | awk -F ':'  '{print $2}' `
M=`uptime | awk  '{print $8,$9,$10,$11,$12}' `
O=`ifconfig eth0 | sed -n  '8' p | awk  '{print $3,$4}' `
P=`ifconfig eth0 | sed -n  '8' p | awk  '{print $7,$8}' `
#R=`ifconfig eth1 | sed -n  '8' p | awk  '{print $3,$4}' `
#S=`ifconfig eth1 | sed -n  '8' p | awk  '{print $7,$8}' `
A=`top -bn1 | sed -n  '2' p | awk  '{print $2}' `
B=`top -bn1 | sed -n  '2' p | awk  '{print $10}' `
echo  "IP: $IP"  >> /root/check_log/jiance.log
echo  "system date:"  >> /root/check_log/jiance.log
echo  "$time"  >> /root/check_log/jiance.log
echo  "-------------system load------------------"  >> /root/check_log/jiance.log
echo  "system load:"  >> /root/check_log/jiance.log
echo $M >> /root/check_log/jiance.log
echo  "------------- full processes---------------"  >> /root/check_log/jiance.log
echo  "processes:"  >> /root/check_log/jiance.log
echo $A >> /root/check_log/jiance.log
echo  "Zombie :"  >> /root/check_log/jiance.log
echo $B >> /root/check_log/jiance.log
echo  "----------- application processes----------"  >> /root/check_log/jiance.log
echo  "nginx processes:"  >> /root/check_log/jiance.log
echo $N >> /root/check_log/jiance.log
echo  "php-fpm processes"  >> /root/check_log/jiance.log
echo $Q >> /root/check_log/jiance.log
echo  "-------------- Tcp connect------------------"  >> /root/check_log/jiance.log
netstat -n | awk  '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}'  >> /root/check_log/jiance.log
echo  "----------- interferce traffic--------------"  >> /root/check_log/jiance.log
echo  "eth0 traffic:"  >> /root/check_log/jiance.log
echo  "in: $O"  >> /root/check_log/jiance.log
echo  "out: $P"  >> /root/check_log/jiance.log
#echo  "eth1 traffic:"  >> /root/check_log/jiance.log
#echo  "in: $R"  >> /root/check_log/jiance.log
#echo  "out: $S"  >> /root/check_log/jiance.log
echo  "------------- cpu load-----------------------"  >> /root/check_log/jiance.log
echo  "cpu load:"  >> /root/check_log/jiance.log
sar -u  5  3  | grep -v Linux | grep -v ^$ >> /root/check_log/jiance.log
echo  "------------- mem load (/M) ------------------"  >> /root/check_log/jiance.log
echo  "mem load:"  >> /root/check_log/jiance.log
MemTotal=`free -m | grep Mem | awk -F:  '{print $2}'  | awk  '{print $1}' `
MemFree=`free -m | grep cache | awk NR== 2  | awk  '{print $4}' `
MemFreeB=`awk  'BEGIN{printf "%.2f%\n",' $MemFree/$MemTotal\* 100 '}' `
MemFreeS=`awk  'BEGIN{printf "%.f",' $MemFree/$MemTotal\* 100 '}' `
echo  "MemTotal:$MemTotal  MemFree:$MemFree  MemFreeB:$MemFreeB  MemFreeS:$MemFreeS "  >> /root/check_log/jiance.log
echo  "--------------- disk use-----------------------"  >> /root/check_log/jiance.log
echo  "disk use: "  >> /root/check_log/jiance.log
df -h >> /root/check_log/jiance.log
echo  "-----------check io load-----------------------"  >> /root/check_log/jiance.log
echo  "io load: "  >> /root/check_log/jiance.log
iostat  | grep -v ^$ | grep -v Linux | grep -v dm | grep -v hdc >> /root/check_log/jiance.log
echo  "------------------All information -----------------"  >> /root/check_log/jiance.log
echo  "All Information"  >> /root/check_log/jiance.log
dstat  5  3  >> /root/check_log/jiance.log
sleep $RUNTIME
cat  "/root/check_log/jiance.log"  |mutt -s  "240 info"  your_mail@ 163 .com
sleep $WAITTIME
done
1
sh ./chakan &

附图

wKioL1NwgNnyobDSAAFS1pyD03w336.jpg











本文转自 bbotte 51CTO博客,原文链接:http://blog.51cto.com/bbotte/1409922,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
缓存 安全 Linux
Linux 五种IO模型
Linux 五种IO模型
|
1月前
|
SQL 监控 关系型数据库
MySQL优化: CPU高 处理脚本 pt-kill脚本
MySQL优化: CPU高 处理脚本 pt-kill脚本
|
3天前
|
存储 机器人 Linux
Netty(二)-服务端网络编程常见网络IO模型讲解
Netty(二)-服务端网络编程常见网络IO模型讲解
|
1月前
|
缓存 Kubernetes 数据中心
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
|
1月前
|
消息中间件 网络协议 Java
你不得不了解的网络IO模型知识
该文章主要讲述了网络I/O模型的相关知识,包括不同的I/O模型以及它们的特点和应用场景。
你不得不了解的网络IO模型知识
|
1月前
|
缓存 Linux 调度
[kvm]硬盘IO优化
[kvm]硬盘IO优化
|
2月前
|
Linux 开发工具
CPU-IO-网络-内核参数的调优
CPU-IO-网络-内核参数的调优
67 7
|
2月前
|
安全 Java Linux
(七)Java网络编程-IO模型篇之从BIO、NIO、AIO到内核select、epoll剖析!
IO(Input/Output)方面的基本知识,相信大家都不陌生,毕竟这也是在学习编程基础时就已经接触过的内容,但最初的IO教学大多数是停留在最基本的BIO,而并未对于NIO、AIO、多路复用等的高级内容进行详细讲述,但这些却是大部分高性能技术的底层核心,因此本文则准备围绕着IO知识进行展开。
131 1
|
1月前
|
小程序 Linux 开发者
Linux之缓冲区与C库IO函数简单模拟
通过上述编程实例,可以对Linux系统中缓冲区和C库IO函数如何提高文件读写效率有了一个基本的了解。开发者需要根据应用程序的具体需求来选择合适的IO策略。
24 0
|
1月前
|
存储 IDE Linux
Linux源码阅读笔记14-IO体系结构与访问设备
Linux源码阅读笔记14-IO体系结构与访问设备