简述:周期定时发送表空间到指定邮箱内

1.修改邮箱配置 /etc/mail.rc,具体细节见网上教程

$ vi /etc/mail.rc
set from=123456@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=123456
set smtp-auth-password=runoob
set smtp-auth=login

测试:
echo hello word | mail -s " title" 123456@qq.com

2.添加脚本到oracle用户的定时任务,可以调整执行时间,这是一周执行一次

[oracle@app-db ~]$ crontab -l
* * * * 1 /home/oracle/auto_send_tablespace.sh

3.auto_send_tablespace.sh,注意修改$ip项,能否筛选出来服务器IP

#!/bin/bash
# --------------------------------------------------------------------------+
# Author : steven |
# --------------------------------------------------------------------------+
# ip:注意修改网卡信息,尝试$ip是否能筛选出来ip
# -------------------------------
# Set environment here
# ------------------------------
#su - oracle #创建文件
source /etc/profile
ip=`/sbin/ifconfig ens160 | awk -F "[ :]+" 'NR==2 {print $3}'`
date_str=`date "+%Y%m%d%H%M"`
dir=/home/oracle/$ip
send_file=$dir/$date_str.txt
if [ ! -d "$dir" ]; then
mkdir $dir
touch $send_file
else
touch $send_file
fi #cd /home/oracle/shell #查询表空间
echo -e "\n\n\n表空间统计:" >> $send_file
sqlplus -s "/ as sysdba" << EOF >> $send_file
SELECT a.tablespace_name "表空间名称", 100-ROUND((NVL(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)", ROUND(a.bytes_alloc/1024/1024,2) "容量(M)", ROUND(NVL(b.bytes_free,0)/1024/1024,2) "空闲(M)", ROUND((a.bytes_alloc-NVL(b.bytes_free,0))/1024/1024,2) "使用(M)" FROM (SELECT f.tablespace_name, SUM(f.bytes) bytes_alloc, SUM(DECODE(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes FROM dba_data_files f GROUP BY tablespace_name) a, (SELECT f.tablespace_name, SUM(f.bytes) bytes_free FROM dba_free_space f GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name;
exit
EOF #发送邮件
mail -s "表空间统计:$ip" houzhih@yutong.com < $send_file #删除30天前的文件
find $dir -name "*.txt" -mtime +30 -exec rm {} \;
												

auto_send_tablespace.sh的更多相关文章

  1. 数据库备份并分离日志表(按月)sh 脚本

    #!/bin/sh year=`date +%Y` month=`date +%m` day=`date +%d` hour=`date +%H` dir="/data/dbbackup/f ...

  2. Linux下如何查找.sh后缀的文件

    find / -name *.sh或locate *.shfind 与locate的区别:locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称

  3. sh 测试网段在线主机

    yum install nmap nmap -sP  192.168.21.1/24 查看网段在线主机 grep -vwf file1 file2 文件内容比较 #!/bin/bash # day=` ...

  4. Maven打包生成可运行bat/sh脚本文件

    利用Maven的appassembler-maven-plugin插件,就可以实现自动打包可运行的脚本,还可以跨平台.   <plugin>      <groupId>org ...

  5. 记一个简单的保护if 的sh脚本

    真是坑爹,就下面的sh,竟然也写了很久! if [ `pwd` != '/usr/xx/bin/tomcat' ] then echo "rstall is not allowed in c ...

  6. 主机巡检脚本:OSWatcher.sh

    主机巡检脚本:OSWatcher.sh 2016-09-26更新,目前该脚本只支持Linux操作系统,后续有需求可以继续完善. 注意: 经测试,普通用户执行脚本可以顺利执行前9项检查: 第10项,普通 ...

  7. Oracle巡检脚本:ORAWatcher.sh

    Oracle巡检脚本:ORAWatcher.sh #!/usr/bin/ksh echo "" echo "ORAWatcher Version:1.0.1" ...

  8. 解决:/bin/sh: 1: /home/**/custom_app.sh: Permission denied错误

    出现如下错误,一般是执行权限不够. /bin/sh: : /home/custom_app.sh: Permission denied 解决方法是:cd 到此文件目录,对提示的文件赋予可执行权限或读写 ...

  9. SH Script Grammar

    http://linux.about.com/library/cmd/blcmdl1_sh.htm http://pubs.opengroup.org/onlinepubs/9699919799/ut ...

随机推荐

  1. mysql5.7.29- windows64安装教程

    1.配置环境变量 MYSQL_HOME=D:\tools\mysql-5.7. path=%MYSQL_HOME%\bin 2.执行mysqld --initialize-insecure --use ...

  2. 跟着兄弟连系统学习Linux-【day09】

    day10-20200609 p29.软件包管理-rpm命令管理-安装升级与卸载 [rpm -ivh 包全名]安装 -i(安装) -v (显示详细信息)-h (显示安装进度) 会一步步依赖,比较麻烦, ...

  3. Jmeter-添加用户变量

    1. 创建用户定义的变量. 2. 3. 4.输出结果:

  4. 转载:SQL语句执行顺序

    转载地址:https://database.51cto.com/art/202001/609727.htm

  5. jQuery的那些事儿

    jQuery概述 j-JavaScript+Query就是查询js的库,把js中的DOM操作做了封装,实现快速查询使用其中的功能. 优化了DOM操作.事件处理.动画设计和Ajax交互 学习jQuery ...

  6. Dockerfile使用,示例

    1.dockerfile介绍 镜像分类: 基础镜像:例如centos.Ubuntu.alpine 环境镜像:例如Java.php.go 项目镜像:将项目与环境镜像打包一起 2.Dockerfile常用 ...

  7. Unit5:广播

    静态广播 1.定义 public class TestBroadCast extends BroadcastReceiver { @Override public void onReceive(Con ...

  8. 令人困惑的strtotime

    经常会有人被strtotime结合-1 month, +1 month, next month的时候搞得很困惑, 然后就会觉得这个函数有点不那么靠谱, 动不动就出问题. 用的时候就会很慌… 这不, 刚 ...

  9. [LeetCode]Sql系列4

    ##题目1 626. 换座位 小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id. 其中纵列的 id 是连续递增的 小美想改变相邻俩学生的座位. ...

  10. 修改ubuntu默认源

    修改文件 桌面版Ubuntu默认非root账户 可以先在 home/user/下新建一个文件source.list-new 将其写为 deb http://mirrors.aliyun.com/ubu ...