Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知

所属分类: 脚本专栏 / linux shell 阅读数: 1225
收藏 0 赞 0 分享

复制代码 代码如下:

#/bin/bash
#该脚本用于统计硬盘空间和表空间的使用情况,并邮件发出
#初始化环境变量
source /home/oracle/.bash_profile
#获得本机ip
ip=`/sbin/ifconfig eth0 | grep Bcast | cut -d : -f 2 | cut -d " " -f 1`
#切换到本脚本目录
cd /home/oracle/shell/
#删除之前该脚本产生的日志文件
rm -rf $ip.txt
#统计硬盘空间
echo -e "您好!
    $ip统计信息如下:\n\n" >> $ip.txt
echo "硬盘空间统计:" >> $ip.txt
/bin/df -Th >> $ip.txt
#统计表空间
echo -e "\n\n\n表空间统计:" >> $ip.txt
sqlplus -s scott/tiger << EOF >> $ip.txt
set feed off
set lines 400
set pages 900
col 表空间名 for a20
select x.tablespace_name 表空间名,已用,已分配,已用占已分配的比例,空闲的已分配空间,最大可用空间,已分配占最大可用比例,可自动扩展的空间
  from (select TABLESPACE_NAME,round(sum(BYTES) / 1024 / 1024 / 1024, 9) 已分配,
               round(sum(MAXBYTES - BYTES) / 1024 / 1024 / 1024,2) 可自动扩展的空间,
               round(sum(MAXBYTES) / 1024 / 1024 / 1024) 最大可用空间,
               to_char(round(sum(BYTES) / sum(MAXBYTES) * 100, 2), '990.99') || '%' 已分配占最大可用比例
          from dba_data_files
         group by TABLESPACE_NAME) x,
       (select a.tablespace_name,
               round(a.bytes / 1024 / 1024 / 1024, 9) 已用,
               round(b.bytes / 1024 / 1024 / 1024, 9) 空闲的已分配空间,
               to_char(round(a.bytes / (a.bytes + b.bytes) * 100, 2),
                       '990.99') || '%' 已用占已分配的比例
          from sys.sm\$ts_used a, sys.sm\$ts_free b
         where a.tablespace_name = b.tablespace_name) y
 where x.tablespace_name = y.tablespace_name
 order by 1;
exit
EOF
#把统计结果邮件发出
mutt -s "$ip统计信息" -- zhangwz@xx.net < $ip.txt

 
加到操作系统的定时任务中:

每周五的15:30执行此脚本

复制代码 代码如下:

[oracle@ ~]$ crontab -l
30 15 * * 5  /home/oracle/shell/weekcheck.sh

更多精彩内容其他人还在看

php编译安装常见错误大全和解决方法

这篇文章主要介绍了php编译安装常见错误大全和解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux base shell重定向详解

这篇文章主要介绍了Linux base shell重定向的相关资料,并用一个简明例子总结了常见用法(在第三节),需要的朋友可以参考下
收藏 0 赞 0 分享

Linux Shell 常见的命令行格式简明总结

这篇文章主要介绍了Linux Shell 常见的命令行格式简明总结,非常实用,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell 命令替换的两种方式

这篇文章主要介绍了Shell 命令替换的两种方式,需要的朋友可以参考下
收藏 0 赞 0 分享

Python创建、删除桌面、启动组快捷方式的例子分享

这篇文章主要介绍了Python创建、删除桌面、启动组快捷方式的例子分享,需要的朋友可以参考下
收藏 0 赞 0 分享

shell基础学习中的字符串操作、for循环语句示例

这篇文章主要介绍了shell基础学习中的字符串操作、for循环语句示例
收藏 0 赞 0 分享

shell脚本中28个特殊字符的作用简明总结

这篇文章主要介绍了shell脚本中28个特殊字符的作用简明总结,需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell流程控制语句实例讲解(if、for、while、case语句实例)

linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法
收藏 0 赞 0 分享

分享一个实用的iptables脚本(各种过滤写法参考)

这篇文章主要介绍了分享一个实用的iptables脚本(各种过滤写法参考),需要的朋友可以参考下
收藏 0 赞 0 分享

shell脚本实现ssh自动登录功能分享

mac下没有找到好用的类似secureCRT,就自己写了个自动登录的脚本,分享一下,如果是新浪的,就基本不用修改代码就直接能用
收藏 0 赞 0 分享
查看更多