脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - shell - Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知

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

2023-02-24 12:23脚本之家 shell

这篇文章主要介绍了Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知,其中表空间是指oracle数据库里的表空间,需要的朋友可以参考下

复制代码 代码如下:

#/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

 

延伸 · 阅读

精彩推荐
  • shellShell函数的7种用法介绍

    Shell函数的7种用法介绍

    这篇文章主要介绍了Shell函数的7种用法介绍,本文讲解了在shell文件内部定义函数并引用、返回值、函数输出、向函数传递参数、全局变量与局部变量等内容...

    shell教程网5152023-02-23
  • shell用来记录登录后使用命令的shell脚本

    用来记录登录后使用命令的shell脚本

    记录登录后使用命令的shell脚本,历史记录,方便管理员查看记录...

    shell教程网11942022-12-14
  • shellshell数组操作简明总结

    shell数组操作简明总结

    这篇文章主要介绍了shell数组操作总结,这里包括数组的声明、访问、复制、计算、删除、替换等操作,需要的朋友可以参考下...

    shell编程教程4362023-02-09
  • shell如何在 Bash 脚本中分割字符串

    如何在 Bash 脚本中分割字符串

    假设我们有一个由逗号或者下划线隔开的多个单词组成的字符串,需要拆分这个字符串提取各个单词。 可以使用内部字段分隔符( Internal Field Separator,I...

    TIAP9262022-12-06
  • shelllinux shell 逻辑运算符、逻辑表达式详细介绍

    linux shell 逻辑运算符、逻辑表达式详细介绍

    shell的逻辑运算符 涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果...

    shell教程网9622022-12-26
  • shellCsh的基本语法介绍

    Csh的基本语法介绍

    这篇文章主要介绍了Csh的基本语法,讲解了变量、数组、命令替换、命令行参数、IO重定向和管道等内容,需要的朋友可以参考下...

    脚本之家6202023-02-22
  • shellLINUX下的流量监控shell脚本

    LINUX下的流量监控shell脚本

    这篇文章主要介绍了LINUX下的流量监控shell脚本,可以适用任何Linux版本,需要的朋友可以参考下...

    shell教程网9132023-01-28
  • shellsed或awk处理文件最后一行的实现方法

    sed或awk处理文件最后一行的实现方法

    sed或awk处理文件最后一行,供大家学习参考...

    脚本之家4052022-12-12