python脚本自动生成ORACLE AWR报告

简介:
 
  1. #!/usr/bin/python  
  2. #coding=gbk  
  3. #2011-08-12  
  4. import os  
  5. import sys  
  6. import smtplib  
  7. import pickle  
  8. import mimetypes   
  9. from email.MIMEText import MIMEText   
  10. from email.MIMEImage import MIMEImage  
  11. from email.MIMEMultipart import MIMEMultipart  
  12. SMTP_SERVER='localhost' 
  13. #EMAIL_USER='root'  
  14. #EMAIL_PASSWD=''  
  15. EMAIL_SUBJECT='dg01.com.cn AWR Report' 
  16. FROM_USER='root@dg01.com.cn' 
  17. TO_USERS=['vcdog@126.com','kevin@hotmail.com']  
  18. def createawr():  
  19.   pipe = os.popen(' su - oracle -c "/u01/oracle/product/10.2.0/db_1/bin/sqlplus /nolog @awrrpt.sql"')  
  20.   print 'create awr report is ok!' 
  21. def mysendmail(fromaddr,toaddrs,subject):  
  22.         COMMASPACE=',' 
  23.         msg = MIMEMultipart()   
  24.         msg['From'] = fromaddr  
  25.         msg['To'] = COMMASPACE.join(toaddrs)  
  26.         msg['Subject'] = subject  
  27.         txt = MIMEText("172.21.1.30 AWR Report, The report be send at 9 AM every day ")   
  28.         msg.attach(txt)   
  29.         fileName = r'/home/oracle/awr.html' 
  30.         ctype, encoding = mimetypes.guess_type(fileName)   
  31.         if ctype is None or encoding is not None:   
  32.             ctype = 'application/octet-stream' 
  33.         maintype, subtype = ctype.split('/'1)   
  34.         att = MIMEImage((lambda f: (f.read(), f.close()))(open(fileName, 'rb'))[0], _subtype = subtype)   
  35.         att.add_header('Content-Disposition''attachment', filename = fileName)   
  36.         msg.attach(att)   
  37.         server=smtplib.SMTP(SMTP_SERVER)  
  38.         #server.login(EMAIL_USER,EMAIL_PASSWD)  
  39.         server.sendmail(fromaddr,toaddrs,msg.as_string())  
  40.         server.quit()  
  41. if __name__=='__main__':  
  42.                 createawr()  
  43.                 mysendmail(FROM_USER, TO_USERS, EMAIL_SUBJECT)  
  44.                 print 'send successful' 

 



    本文转自vcdog 51CTO博客,原文链接:http://blog.51cto.com/255361/837936,如需转载请自行联系原作者



相关文章
|
2月前
|
Linux Shell Python
Linux执行Python脚本
Linux执行Python脚本
31 1
|
1月前
|
Python
十行python代码实现文件去重,去除重复文件的脚本
十行python代码实现文件去重,去除重复文件的脚本
19 1
|
2天前
|
Python Perl
LabVIEW调用Perl和Python脚本
LabVIEW调用Perl和Python脚本
|
3天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
14 6
|
3天前
修改oracle11g的awr快照参数
修改oracle11g的awr快照参数
|
4天前
|
缓存 人工智能 算法
编写高效的Python脚本:性能优化的策略与技巧
编写高效的Python脚本需要综合考虑多个方面,包括代码结构、数据结构和算法选择等。本文将探讨在Python编程中提高脚本性能的方法,包括优化数据结构、选择合适的算法、使用Python内置函数以及通过并行和异步编程提升效率。这些技巧旨在帮助开发者在不同应用场景中编写出高性能的Python代码。
|
7天前
|
SQL 数据库 数据库管理
python自动生成SQL语句自动化
python自动生成SQL语句自动化
23 1
|
15天前
|
存储 网络安全 数据安全/隐私保护
【专栏】Python 网络设备管理中,`ConnectHandler`(Paramiko库)和`telnetlib`模块常用于设备交互。
【4月更文挑战第28天】Python 网络设备管理中,`ConnectHandler`(Paramiko库)和`telnetlib`模块常用于设备交互。`ConnectHandler`简化SSH连接,便于与网络设备交互,而`telnetlib`是Python内置模块,支持Telnet协议的远程登录操作。两者都提供命令执行和响应接收功能。示例代码展示了如何使用它们获取防火墙设备的版本信息,降低了代码复杂度,提高了可读性和维护性。
|
15天前
|
网络安全 数据安全/隐私保护 Python
【专栏】如何使用 Python 编写脚本批量备份交换机配置
【4月更文挑战第28天】本文介绍如何使用 Python 编写脚本批量备份交换机配置。主要步骤包括了解交换机命令和接口,安装 `paramiko` 库,获取交换机登录信息。脚本实现分为建立 SSH 连接,执行备份命令并保存结果。示例脚本中,定义了 `backup_switch_config` 函数遍历交换机列表进行备份,每次备份后等待一段时间。此方法能有效提高网络管理效率。
|
18天前
|
SQL 监控 Oracle
Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)
Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)