汝阳县建设局网站/怎么让网站快速收录
文章目录
- 一、Linux监控一个主机状态脚本
- 二、Linux监控服务端口状态脚本
- 三、Linux计算内存使用率占比
- 四、Linux 磁盘I/O列长度监控脚本
一、Linux监控一个主机状态脚本
#!/bin/bashfor ((i=1;i<4;i++));doif ping -c1 $1 &>/dev/null;thenexport ping_count"$i"=1elseexport ping_count"$i"=0fi# 时间间隔sleep 0.5
done# 3次ping 失败报警
if [ $ping_count1 -eq $ping_count2 ] && [ $ping_count2 -eq $ping_count3 ] && [ $ping_count1 -eq 0 ]thenecho "$1 is down"elseecho "$1 is up"
fi# 取消上面定义的变量
unset ping_count1
unset ping_count2
unset ping_count3
二、Linux监控服务端口状态脚本
#!/bin/bash
prot_status(){
temp_file=`mktemp prot_status.XXX`# 1、判断telnet命令是否存在
[ ! -x /usr/bin/telnet ] && echo "telnet: not found comand" && exit 1# 2、测试端口 $1:IP地址 $2:端口号
( telnet $1 $2 <<EOF
quit
EOF) &> $temp_file# 3、分析文件中内容 判断结果if egrep "\^]" $temp_file &>/dev/null;thenecho "$1 $2 open"
elseecho "$1 $2 down"
firm -f $temp_file
}
prot_status $1 $2
三、Linux计算内存使用率占比
#!/bin/bashMEM_TOTAL=`free -h |awk 'NR==2{print $2}'`MEM_USE=`free -h |awk 'NR==2{print $3}'`
MEM_USED=`free | grep -i mem |awk '{print $3/$2*100"%"}'`MEM_FREE=`free -h |awk 'NR==2{print $4}'`
MEM_FREED=`free | grep -i mem |awk '{print $4/$2*100"%"}'`MEM_BUFF_CACHE=`free -h |awk 'NR==2{print $6}'`
MEM_BUFF_CACHED=`free | grep -i mem |awk '{print $6/$2*100 "%"}'`MEM_SHARE=`free -h |awk 'NR==2{print $5}'`
MEM_SHARED=`free | grep -i mem |awk '{print $5/$2*100 "%"}'`
MEM_ZONE=`head -3 /proc/meminfo | awk 'NR==1{t=$2}NR==2{f=$2;print(t-f)*100/t"%"}'`echo "内存总量: $MEM_TOTAL"
echo "内存总量减剩余内存(所有已使用)占比: $MEM_ZONE"
echo "已使用: $MEM_USE 占比: $MEM_USED"
echo "剩 余: $MEM_FREE 占比: $MEM_FREED"
echo "共 享: $MEM_SHARE 占比: $MEM_SHARED"
echo "缓冲区: $MEM_BUFF_CACHE 占比: $MEM_BUFF_CACHED"
四、Linux 磁盘I/O列长度监控脚本
建议先从了解 iostat命令开始: Linux iostat命令详解
[root@shell jao]# cat io.sh
#!/bin/bash# 判断系统是否安装iostat scipt 基于iostat命令
[ ! -x /usr/bin/iostat ] && echo "iostat:command not found"&& exit 1
io(){#匹配以sd开头的磁盘 如磁盘是vd,或其他开头 这里直接改 Device_name变量即可。
Device_name=sd
Device_length=`iostat -d -x | egrep "^$Device_name[[:alpha:]]|^dm" |wc -l`# tail -n +K 表示从第K个开始输出
iostat -x 1 3 | egrep "^sd[[:alpha:]]|^dm" |tail -n +$((Device_length+1)) | awk '{io_long[$1]+=$9}END{for (i in io_long)print io_long[i],i}'echo "-----"
}for ((i=1;i<6;i++));doio
done