ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Shell磁盘空间和表空间告警程序

Shell磁盘空间和表空间告警程序

Linux操作系统 作者:pooldb 时间:2016-07-25 18:33:34 0 删除 编辑

把下面内容添加到文件夹里面
/etc/mail.rc

set from=1423646477@139.com
set smtp=smtp.139.com
set smtp-auth=login
set smtp-auth-user=253645765878@139.com
set smtp-auth-password=2015
set ssl-verify=ignore

这下面脚本
#!/bin/bash
#More than 80% the alarm
#Contents are saved to disk/home/oracle/disk.log
#Please don't delete log cover
#make script mxq
#find /home/oracle -mtime +5 -name "*sql.xls" -exec rm -f   {} \;
disk_free=$(df -P | grep /dev | awk '{print $5}' | cut -f 1 -d "%")
#disk_mail=$(df -h)




df -h > /home/oracle/disk.log
for  l in  $disk_free

do

if [ $l -gt 90 ]; then

echo "The remaining space is less than 80% the alarm"|mail -s 'Disk monitoring' 25463131131@qq.com < /home/oracle/disk.log

break 1

fi
done

oracle_use=$(su - oracle -c "sqlplus -silent / as sysdba" << m| awk '{print $1}' | cut -f 1 -d "%"
set pagesize 0 feedback off verify off heading off echo off numwidth 4
select to_char(round((t.full_space-nvl(f.free_space,0))/t.full_space*100))||'%' "使用率" from (select tablespace_name,round(sum(bytes)/(1024*1024),2) free_space from dba_free_space group by tablespace_name) f ,(select tablespace_name,round(sum(bytes)/(1024*1024),2) full_space from dba_data_files group by tablespace_name) t where f.tablespace_name=t.tablespace_name(+);
exit
m
)

su - oracle -c "sqlplus -silent / as sysdba" << m > /home/oracle/tablespace.log
set feedback off
select t.tablespace_name "tablespace_name",t.full_space "total M",(t.full_space-nvl(f.free_space,0)) "USE M",f.free_space "FREE M",to_char(round((t.full_space-nvl(f.free_space,0))/t.full_space*100,1),'fm999990.99999')||'%' "rate" from (select tablespace_name,round(sum(bytes)/(1024*1024),2) free_space from dba_free_space group by tablespace_name) f,(select tablespace_name,round(sum(bytes)/(1024*1024),2) full_space from dba_data_files group by tablespace_name) t where f.tablespace_name=t.tablespace_name(+);
exit
m



for  oracle_all in  $oracle_use

do

if [ $oracle_all -gt 80 ]; then

echo "The remaining space is less than 80% the alarm"|mail -s 'Disk monitoring' 285313132221@qq.com < /home/oracle/tablespace.log

break 1

fi
done

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30074459/viewspace-2122533/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-12-22

  • 博文量
    404
  • 访问量
    296519