k12-ssm-osPopen.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # lambda_code
  2. import json
  3. import boto3
  4. def lambda_handler(event,context):
  5. client = boto3.client('ssm')
  6. try:
  7. msg =json.loads(event['body'])
  8. sg = msg['secret_code']
  9. print("secret " + sg)
  10. client.put_parameter(Name="Secret",Value=sg,Type='String',Overwrite=True)
  11. except:
  12. print("NO")
  13. return {
  14. "statusCode": 200,
  15. "headers": {
  16. "Content-Type": "application/json",
  17. },
  18. "body": json.dumps(event, indent=4),
  19. }
  20. # -----------------------------
  21. import boto3
  22. import time
  23. import os
  24. client = boto3.client('ssm')
  25. def alter(file,old_str,new_str):
  26. file_data = ""
  27. with open(file, "r", encoding="utf-8") as f:
  28. for line in f:
  29. if old_str in line:
  30. line = line.replace(line,new_str)
  31. file_data += line
  32. with open(file,"w",encoding="utf-8") as f:
  33. f.write(f'[DEFAULT]\nlog_path = "/root/"\n{file_data}')
  34. # f.write(file_data)
  35. f.close()
  36. def old_read(file,old_str):
  37. with open(file, "r", encoding="utf-8") as f:
  38. for line in f:
  39. if old_str in line:
  40. return line
  41. while True:
  42. global old
  43. respond = client.get_parameter(Name='Secret')
  44. code_ori = respond['Parameter']['Value']
  45. code_pro = code_ori.replace("'", '')
  46. code = f'secret_code = "{code_pro}"'
  47. time.sleep(3)
  48. old = old_read("/conf.toml", "secret_code")
  49. if old == code:
  50. print('NO')
  51. else:
  52. os.popen("killall server_ddb")
  53. os.system("nohup /server_v1 /conf.toml &")
  54. os.popen('killall server_k12')
  55. alter("/conf.toml", "secret_code", code)
  56. os.system('nohup /root/server_k12 /conf.toml &')
  57. print('OK===========')
  58. import boto3
  59. import os
  60. import time
  61. while True:
  62. time.sleep(1.5)
  63. client = boto3.client('dynamodb')
  64. res = client.get_item(TableName='hehe2',Key={'name':{'S':'name'}})
  65. version = res['Item']['version']['S']
  66. if version == "RDS":
  67. status = os.popen("pgrep server_rds").readline()
  68. if len(status) == 0:
  69. os.popen("killall server_ddb")
  70. os.system("nohup /mnt/v1/rds/server_rds /mnt/v1/rds/conf.toml &")
  71. else:
  72. print("rds Pro")
  73. elif version == "DYNAMODB":
  74. status_2 = os.popen("pgrep server_ddb").readline()
  75. if len(status_2) == 0:
  76. os.popen("killall server_rds")
  77. os.system("nohup /mnt/v1/ddb/server_ddb /mnt/v1/ddb/conf.toml &")
  78. else:
  79. print("DDDDDB Pro")