Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- '''docasap_monitor.py
- '''
- import sys
- import platform
- import cx_Oracle
- import time
- import smtplib
- import os
- from subprocess import call
- # Set some defaults - maybe need config file or more arguments?
- _DB_CON = None
- JYTHON = 0
- db_username = sys.argv[1]
- db_password = sys.argv[2]
- tnsname = sys.argv[3]
- GRAB_SQL_INFO = """select name from v$datafile where file#=%s"""
- # Establish connection
- def est_db_con (username, password, tnsname):
- global _DB_CON
- # if not _DB_CON:
- dbinfo = username
- try:
- dbinfo = 'db: %s@%s' % (username, tnsname)
- print('--'+dbinfo)
- _DB_CON = cx_Oracle.connect(username, password, tnsname)
- print ('--cx_Oracle version: ' + _DB_CON.version),
- except:
- print '\n###### Database Connection Info ######'
- print ('Python version: ' + platform.python_version())
- ex = sys.exc_info()
- s = 'Exception: %s: %s\n%s' % (ex[0], ex[1], dbinfo)
- print(s)
- return None
- return _DB_CON
- # Alias the database connection
- def db_con():
- return _DB_CON
- def process_sql(sql):
- cur = db_con().cursor()
- print "PROCESS_SQL:"+sql
- try:
- cur.execute(sql)
- sql_output = cur.fetchone()
- result = next(iter(sql_output))
- cur.close()
- return result
- except cx_Oracle.DatabaseError, exc:
- error, = exc.args
- print >> sys.stderr, "Oracle-Error-Code:", error.code
- print >> sys.stderr, "Oracle-Error-Message:", error.message
- cur.close()
- def get_check_command(number):
- est_db_con (db_username, db_password, tnsname)
- # Run sql to get table and creation date
- file_name = process_sql(GRAB_SQL_INFO % number)
- command = 'dbv file="%s" userid=%s/%s feedback=100' % (file_name, db_username, db_password)
- print command
- return command
- def corrupt_block_check():
- command = get_check_command(sys.argv[4])
- retvalue = os.system(command)
- print retvalue
- corrupt_block_check()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement