采用Shell及AWK脚本实现磁盘使用空间监控
2011-11-23 07:56
886 查看
背景:
在应用程序中,经常需要配置FTP空间存放数据,同样数据库也需要大量的磁盘存放业务数据。如果FTP和数据库磁盘空间不够,却没有及时通知相关人员进行处理,就会导致程序错误或者数据库无法存储数据。这类故障是及其严重的。
Shell脚本(disk_space_warn.sh):
#!/bin/bash
#
# 监控磁盘使用空间是否超限
# chm, 461810517@qq.com
# 2011/11/22
#
# config.txt配置需要监控磁盘路径,格式为:磁盘路径|使用限制|超限告警信息
# 每次告警信息会记录在文件warn.log中,这里可以修改逻辑,以短信的方式发送告警
#
username=$(whoami)
deploy_dir="/home/${username}/disk_space_warn"
cat ${deploy_dir}/config.txt | while read tmp
do
disk_path=$(echo ${tmp} | awk -F\| '{print $1}')
limit=$(echo ${tmp} | awk -F\| '{print $2}')
warn_info=$(echo ${tmp} | awk -F\| '{print $3}')
is_warn=$(df -h ${disk_dir} | awk -v limit="${limit}" -f disk_space_warn.awk)
if [ ${is_warn) -ne 0 ]; then
echo "${warn_info} ${limit}" >> ${deploy_dir}/warn.log
fi
done
AWK脚本(disk_space_warn.awk):
# 仅取第二行进行分析, 因AWK中比较方便进行小数、整数、字符串比较,
# 而bash中可以方便地进行整形比较,所以建议在AWK中进行此类操作
NR==2 {
tmp = substr($5, 0, length($5)-1);
if (tmp > limit) {
printf "1";
} else {
printf "0";
}
}
采用crontab配置定时任务:
crontab -e
末尾输入如下内容:
*/10 * * * * sh [deploy_dir]/disk_space_warn.sh
注:
1. 查看crontab定时任务配置命令:crontab -l
2. [deploy_dir]为实际部署disk_space_warn.sh监控脚本的路径
在应用程序中,经常需要配置FTP空间存放数据,同样数据库也需要大量的磁盘存放业务数据。如果FTP和数据库磁盘空间不够,却没有及时通知相关人员进行处理,就会导致程序错误或者数据库无法存储数据。这类故障是及其严重的。
Shell脚本(disk_space_warn.sh):
#!/bin/bash
#
# 监控磁盘使用空间是否超限
# chm, 461810517@qq.com
# 2011/11/22
#
# config.txt配置需要监控磁盘路径,格式为:磁盘路径|使用限制|超限告警信息
# 每次告警信息会记录在文件warn.log中,这里可以修改逻辑,以短信的方式发送告警
#
username=$(whoami)
deploy_dir="/home/${username}/disk_space_warn"
cat ${deploy_dir}/config.txt | while read tmp
do
disk_path=$(echo ${tmp} | awk -F\| '{print $1}')
limit=$(echo ${tmp} | awk -F\| '{print $2}')
warn_info=$(echo ${tmp} | awk -F\| '{print $3}')
is_warn=$(df -h ${disk_dir} | awk -v limit="${limit}" -f disk_space_warn.awk)
if [ ${is_warn) -ne 0 ]; then
echo "${warn_info} ${limit}" >> ${deploy_dir}/warn.log
fi
done
AWK脚本(disk_space_warn.awk):
# 仅取第二行进行分析, 因AWK中比较方便进行小数、整数、字符串比较,
# 而bash中可以方便地进行整形比较,所以建议在AWK中进行此类操作
NR==2 {
tmp = substr($5, 0, length($5)-1);
if (tmp > limit) {
printf "1";
} else {
printf "0";
}
}
采用crontab配置定时任务:
crontab -e
末尾输入如下内容:
*/10 * * * * sh [deploy_dir]/disk_space_warn.sh
注:
1. 查看crontab定时任务配置命令:crontab -l
2. [deploy_dir]为实际部署disk_space_warn.sh监控脚本的路径
相关文章推荐
- Shell脚本实现监控swap空间使用情况和查看占用swap的进程
- shell脚本第三篇——监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告
- Shell脚本实现监控swap空间使用情况和查看占用swap的进程
- 在Shell脚本中编写AWK脚本实现数据提取—注意格式、awk中使用shell变量、awk中数字字符串转换成数字、awk中字符串相等比较
- Linux下监控磁盘的空闲空间的shell脚本
- Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知
- shell awk实现实时监控网卡流量脚本(常见应用二)
- shell awk实现实时监控网卡流量脚本(常见应用二)
- linux下监控磁盘使用空间的脚本
- Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本
- 使用shell脚本进行服务器系统监控——页面调度与交换空间监控
- 使用shell脚本自动检查hdfs集群各数据节点的磁盘空间使用率[附代码]
- linux shell awk实现实时监控网卡流量脚本
- 分享一个监控网络,磁盘使用,平均负载和RAM使用的shell脚本
- shell awk实现实时监控网卡流量脚本(常见应用二)
- 监控磁盘空间shell脚本
- nagios监控redis内存使用情况脚本--shell实现
- 使用shell脚本进行服务器系统监控——页面调度与交换空间监控
- Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知
- shell脚本监控系统负载、CPU和内存使用情况