shell脚本:日常巡检

以下内容仅为提供思路

对于运维来说,每天对所管理的服务器进行一次以上的巡检是最基本的工作,当然,天天free、df的敲键盘很麻烦,这时候最好写一个日常巡检的脚本,辛苦一天,轻松一年

巡检脚本有两种思路,一种是当你想亲眼看一看系统状况的时候,每台服务器都亲自执行一遍这个脚本;另一种是将所有功能封装,执行脚本并不会反馈给你任何数据,只是在当有些参数超过你设定的阈值时发送报警邮件
下面我们两个都来写个模板

第一种

#!/bin/bash
menu(){
cat <<EOF
+------------------------------------------------+
|		日常巡检脚本	       	         |
|		1.查看文件系统使用率	         |	
|		2.查看内存使用率	         |
|		3.查看系统负载		         |
|		4.统计系统连接数	         |
|		5.统计系统进程数                 |
|		6.统计当前磁盘分区信息           |
|		7.按Enter退出                    |
+------------------------------------------------+
EOF
}
menu

while true
do
echo -en "请输入你要查看的内容:"
read  action
	if [ -z "$action" ];then
		echo "See you later"
		break
	fi
	case $action in 
	1)
		df -h
		;;
	2)
		free -h
		;;
	3)
		uptime
		;;
	4)
		ss -tan | grep -i "estab" | wc -l 
		;;
	5)
		ps aux | grep -v "grep" | wc -l
		;;
	6)
		fdisk -l 
		;;		
	esac
done

这个脚本非常简陋,但是基本的框架已经有了,接下来就可以根据这个框架添加自己需要的功能

第二种

第二种思路用ansible的playbook更好实现,不过如果你非要写shell脚本然后用ansible的scripts模块执行也行

#!/bin/bash
ip=ifconfig | grep broadcast | awk '{print $2}'

# 文件系统
df=`df -h | grep -v '文件系统' | tr -s ' ' | tr ' ' :`

for i in $df
do
j=`echo $i | awk -F: '{print $5}' | awk -F% '{print $1}'`
k=`echo $i | awk -F: '{print $1}'`
	if [ $j -gt 80 ]
	then
	echo "文件系统:$k 使用量已达$j" | mail -s "报警:服务器$ip文件系统使用量超过阈值" ********@163.com
	fi
done
# 还可以写各种要监控的参数,我这里就不再写了,大家可以随意添加自己想要查看的信息
  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值