- #! /usr/bin/python
- # -*- coding: UTF-8 -*-
- import cx_Oracle as oracle
- import time
- def nowdate():
- #获取当前时间
- nowdate=time.strftime("%Y%m%d",time.localtime())
- return nowdate
- def get_connect(userinfo):
- #获取 Oracle 数据库的登陆信息
- try:
- conn=oracle.connect(userinfo)
- cursor=conn.cursor()
- except Exception as error:
- print(error)
- else:
- return cursor
- def get_sql(filename):
- #获取统计 Oracle 数据库的 sql 语句
- filename=filename
- try:
- with open(filename) as file:
- sql=file.read()
- except FileNotFoundError:
- error="Sorry,the file" + filename + "does not exist."
- print(error)
- else:
- return sql
- def get_data(sql):
- #获取 Oracle 数据库的表空间使用情况
- cursor.execute(sql)
- data = cursor.fetchall()
- return data
- def get_instance_name():
- #获取 Oracle 数据库实例名字
- cursor.execute('select instance_name from v$instance')
- data = cursor.fetchall()
- cursor.close()
- # conn.close()
- return data
- def put_data(instance_name,instance_data,nowtime):
- #将得到的数据 insert 到特定的实例的表中, 这里选择的是 202 的实例
- host = "10.29.29.1"
- port = "1521"
- sid = "test209"
- dsn = oracle.makedsn(host, port, sid)
- conn =oracle.connect("liuwenhe", "liuwenhe", dsn)
- cursor = conn.cursor()
- insert_sql="insert into liuwenhe.tongji values ('"+instance_name+"','"+str(instance_data)+"','"+nowtime+"')"
- cursor.execute(insert_sql)
- cursor.close()
- conn.commit()
- conn.close()
- if __name__=='__main__':
- try:
- userinfofile='userinfo.txt'
- with open(userinfofile) as file:
- userinfos=file.readlines()
- for userinfo in userinfos:
- cursor=get_connect(userinfo)
- instance_name1=get_instance_name()
- instance_name=instance_name1[0][0]
- sql=get_sql('select')
- cursor=get_connect(userinfo)
- instance_data1=get_data(sql)
- instance_data=instance_data1[0][0]
- nowtime=nowdate()
- put_data(instance_name,instance_data,nowtime)
- except Exception as e:
- print (e)
来源: http://www.linuxidc.com/Linux/2019-08/160293.htm