Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知
#/bin/bash #该脚本用于统计硬盘空间和表空间的使用情况,并邮件发出 #初始化环境变量 source/home/oracle/.bash_profile #获得本机ip ip=`/sbin/ifconfigeth0|grepBcast|cut-d:-f2|cut-d""-f1` #切换到本脚本目录 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-sscott/tiger<<EOF>>$ip.txt setfeedoff setlines400 setpages900 col表空间名fora20 selectx.tablespace_name表空间名,已用,已分配,已用占已分配的比例,空闲的已分配空间,最大可用空间,已分配占最大可用比例,可自动扩展的空间 from(selectTABLESPACE_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')||'%'已分配占最大可用比例 fromdba_data_files groupbyTABLESPACE_NAME)x, (selecta.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')||'%'已用占已分配的比例 fromsys.sm\$ts_useda,sys.sm\$ts_freeb wherea.tablespace_name=b.tablespace_name)y wherex.tablespace_name=y.tablespace_name orderby1; exit EOF #把统计结果邮件发出 mutt-s"$ip统计信息"--zhangwz@xx.net<$ip.txt
加到操作系统的定时任务中:
每周五的15:30执行此脚本
[oracle@~]$crontab-l 3015**5 /home/oracle/shell/weekcheck.sh