采用Shell及AWK脚本实现磁盘使用空间监控

背景:
在应用程序中,经常需要配置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监控脚本的路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值