监控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,如需转载请自行联系原作者
目录
相关文章
|
15天前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
18天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
191 2
|
19天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
35 1
|
1月前
|
监控 安全 Linux
使用NRPE和Nagios监控Linux系统资源的方法
通过遵循以上步骤,可以有效地使用NRPE和Nagios监控Linux系统资源,确保系统运行稳定,并及时响应任何潜在的问题。这种方法提供了高度的可定制性和灵活性,适用于从小型环境到大型分布式系统的各种监控需求。
44 2
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
128 5
|
2月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
449 2
|
1月前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
25 0
|
4天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
14 2
|
5天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。