脚本:auto_send_tablespace定期发送表空间巡检到邮箱

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

 

 

 

 

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 /home/oracle/.bash_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" 123456@qq.com < $send_file #删除30天前的文件 find $dir -name "*.txt" -mtime +30 -exec rm -rf {} \;
复制代码

 


posted @   我爱睡莲  阅读(164)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示