Advertisement
Guest User

Untitled

a guest
Nov 27th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. #!/usr/bin/python3.4
  2. import mysql.connector
  3. import time
  4. import subprocess
  5. import getopt
  6. import sys
  7. import mysql.connector
  8. import time
  9. import re
  10. import os
  11. from subprocess import check_output
  12.  
  13. def main():
  14. """Handy mysql-load monitor"""
  15. ####################
  16. #default values
  17. ####################
  18. outfile = "/var/log/blah2.log"
  19. loadlimit = float(0)
  20. ####################
  21. #end default vaues
  22. ####################
  23.  
  24.  
  25. try:
  26. opts, args = getopt.getopt(sys.argv[1:], "o:l:", ["outfile=", "load="])
  27. except getopt.GetoptError as err:
  28. print (str(err))
  29. usage()
  30. sys.exit(2)
  31. for o, a in opts:
  32. if o in ("-o", "--outfile"):
  33. outfile = a
  34. elif o in ("-l", "--loadlimit"):
  35. loadlimit = float(a)
  36. else:
  37. assert False, "a more sofisticated, personalized error msg for dvlahov"
  38.  
  39. cnx = mysql.connector.connect(user='root', password='mbREGGYjEeiA', host='localhost')
  40. cursor = cnx.cursor()
  41.  
  42. if os.path.exists(outfile):
  43. append_write = 'a' # append if already exists
  44. else:
  45. append_write = 'w' # make a new file if not
  46.  
  47. result_file = open(outfile, append_write)
  48.  
  49. p = re.compile("load average: ([0-9]*[.][0-9]+)")
  50.  
  51. while True:
  52. cursor.execute("show full processlist")
  53. processlist = cursor.fetchall()
  54. uptime = check_output(["uptime"])
  55. time.sleep(1);
  56. ldresult = p.search(uptime.decode('ascii'))
  57. if(float(ldresult.group(1)) >= loadlimit):
  58. result_file.write(str(processlist))
  59. result_file.write('\n')
  60. result_file.write(str(uptime))
  61. result_file.write('\n')
  62.  
  63.  
  64. if __name__ == "__main__":
  65. while True:
  66. try:
  67. main()
  68. except(mysql.connector.errors.InterfaceError):
  69. # reconnect code goes here
  70. print("Exiting, lost conn!")
  71. pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement