Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2016
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import sys, os
  4. import json
  5. import argparse
  6. from classes.Config import Config
  7. from classes.pg_tools import PGInteraction
  8. from classes.Logger import Logger as l
  9. from pprint import pprint
  10. from datetime import datetime, timedelta
  11.  
  12.  
  13. l = l()
  14.  
  15. RESERVED_USERS = ['admin', 'alooma', 'rdsdb']
  16.  
  17. conf = Config()
  18. pg_db_name = conf['cosmo']['db_name']
  19. pg_user = conf['cosmo']['user']
  20. pg_host = conf['cosmo']['host']
  21. pg_password = conf['cosmo']['password']
  22. pg_port = conf['cosmo']['port']
  23. pg = PGInteraction(dbname=pg_db_name,host=pg_host,user=pg_user,password=pg_password,port=pg_port,schema='public')
  24. pg.conn()
  25. pg.batchOpen()
  26.  
  27. c_date = datetime.utcnow() - timedelta(minutes=60)
  28.  
  29. sql = """
  30. select process from stv_sessions
  31. where starttime <= '%(a)s'
  32. and user_name not in ('%(u)s') and db_name <> 'dev'
  33. and process not in
  34. ( select pid
  35. from stv_recents
  36. where status = 'Running')
  37. and process not in
  38. ( select pid
  39. from stl_query
  40. where starttime >= '%(a)s'
  41. and database <>'dev')""" % ({'a': c_date, 'u': "','".join((str(n) for n in RESERVED_USERS))})
  42.  
  43. l.l('\n' + sql + '\n')
  44.  
  45. result = pg.fetch_sql(sql)
  46.  
  47. kill_list = [x[0] for x in result]
  48.  
  49. kill_len = len(kill_list)
  50.  
  51. l.l(str(kill_len) + " connections to be killed")
  52.  
  53. if kill_len == 0:
  54. l.l("no work to do")
  55. exit()
  56.  
  57. for k in kill_list:
  58. sql_kill = 'select pg_terminate_backend(%s);' % (str(k))
  59. pg.exec_sql(sql_kill)
  60. l.l("connection %s killed: " % str(k))
  61.  
  62. l.l('kill list complete')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement