Advertisement
Guest User

Untitled

a guest
Nov 13th, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. #!/usr/bin/python
  2. '''docasap_monitor.py
  3. '''
  4.  
  5. import sys
  6. import platform
  7. import cx_Oracle
  8. import time
  9. import smtplib
  10. import os
  11. from subprocess import call
  12.  
  13. # Set some defaults - maybe need config file or more arguments?
  14. _DB_CON = None
  15. JYTHON = 0
  16. db_username = sys.argv[1]
  17. db_password = sys.argv[2]
  18. tnsname = sys.argv[3]
  19.  
  20. GRAB_SQL_INFO = """select name from v$datafile where file#=%s"""
  21.  
  22. # Establish connection
  23. def est_db_con (username, password, tnsname):
  24. global _DB_CON
  25. # if not _DB_CON:
  26. dbinfo = username
  27. try:
  28. dbinfo = 'db: %s@%s' % (username, tnsname)
  29. print('--'+dbinfo)
  30. _DB_CON = cx_Oracle.connect(username, password, tnsname)
  31. print ('--cx_Oracle version: ' + _DB_CON.version),
  32. except:
  33. print '\n###### Database Connection Info ######'
  34. print ('Python version: ' + platform.python_version())
  35. ex = sys.exc_info()
  36. s = 'Exception: %s: %s\n%s' % (ex[0], ex[1], dbinfo)
  37. print(s)
  38. return None
  39. return _DB_CON
  40.  
  41. # Alias the database connection
  42. def db_con():
  43. return _DB_CON
  44.  
  45. def process_sql(sql):
  46. cur = db_con().cursor()
  47. print "PROCESS_SQL:"+sql
  48. try:
  49. cur.execute(sql)
  50. sql_output = cur.fetchone()
  51. result = next(iter(sql_output))
  52. cur.close()
  53. return result
  54. except cx_Oracle.DatabaseError, exc:
  55. error, = exc.args
  56. print >> sys.stderr, "Oracle-Error-Code:", error.code
  57. print >> sys.stderr, "Oracle-Error-Message:", error.message
  58. cur.close()
  59.  
  60. def get_check_command(number):
  61. est_db_con (db_username, db_password, tnsname)
  62. # Run sql to get table and creation date
  63. file_name = process_sql(GRAB_SQL_INFO % number)
  64. command = 'dbv file="%s" userid=%s/%s feedback=100' % (file_name, db_username, db_password)
  65. print command
  66. return command
  67.  
  68. def corrupt_block_check():
  69. command = get_check_command(sys.argv[4])
  70. retvalue = os.system(command)
  71. print retvalue
  72.  
  73.  
  74. corrupt_block_check()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement