cl-test.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import subprocess
  2. import json
  3. import sys
  4. import io
  5. import dataset
  6. def proc_l(l):
  7. return l.replace('\n','').strip()
  8. db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/hhh?charset=utf8mb4')
  9. table=db['aws_monitor']
  10. arealist=['ap-northeast-1','ap-northeast-2','ap-southeast-1','us-east-1','eu-west-1','us-east-1','us-west-2']
  11. for area in arealist:
  12. #area='us-east-1'
  13. cmd='aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances --max-results 20 --region '+area
  14. cmds=cmd.split(' ')
  15. cl=subprocess.Popen(cmds, stdout=subprocess.PIPE)
  16. lst=[]
  17. js="{"
  18. for l in io.TextIOWrapper(cl.stdout, encoding="utf-8"):
  19. if '"EventId":' in l:
  20. js+=proc_l(l)
  21. lst.append(proc_l(l))
  22. if '"EventTime":' in l:
  23. l2=proc_l(l)
  24. list1 = list(l2)
  25. list1[12]='"'
  26. l2 = ''.join(list1)
  27. l2=l2.replace(',','')
  28. l2+='"'
  29. js+=l2
  30. js+="}"
  31. print(js)
  32. js2=json.loads(js)
  33. js2['area']=area
  34. print(js2)
  35. try:
  36. table.insert(js2)
  37. except:
  38. print('exception')
  39. js="{"
  40. if '"AccessKeyId":' in l:
  41. js+=proc_l(l)
  42. lst.append(proc_l(l))
  43. if '"EventName":' in l:
  44. js+=proc_l(l)
  45. lst.append(proc_l(l))
  46. #lines = cl.stdout.readlines()
  47. #clstr=str(cl)
  48. #lines=clstr.split('\n')
  49. #print(lst)
  50. # print(l)
  51. # sys.exit()
  52. #js=json.loads(str(cl))
  53. #print(js)