Guest User

Untitled

a guest
May 1st, 2018
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.22 KB | None | 0 0
  1. import glob
  2. import gzip
  3. import os
  4. import pymysql
  5. import logging
  6. import subprocess
  7.  # path to gz directory
  8. GZ_DIR = '/Users/mani/Desktop/mysql/csv'
  9. # Database Infomation
  10. DB_HOST='10.1.1.38'
  11. DB_USER='diaguser'
  12. DB_PASS='Password'
  13. DB_NAME='PADIAGDB'
  14. LOGFILE="exception.log"
  15. def csv_reader(file, header=False):
  16.     import csv
  17.     with open(file, "r") as f:
  18.         reader = csv.reader(f)
  19.         if header:
  20.             next(reader)
  21.         for row in reader:
  22.             yield row
  23. def import_sql(filename, dbHostName, dbUser, dbPassword, databaseName):
  24.     db = pymysql.connect(host=dbHostName,
  25.                          user=dbUser,
  26.                          password=dbPassword,
  27.                          db=databaseName,
  28.                          charset='utf8')
  29.  
  30.     for row in csv_reader(filename, False):
  31.         # prepare a cursor object using cursor() method
  32.         with db.cursor() as cursor:
  33.             if row[3] == "THREAT" and row[4] == "url":
  34.                 sql = ("INSERT INTO PADIAGDB.url ("
  35.                        "Domain,Receive_Time,Serial,Type,Threat_Content_Type,"
  36.                        "Config_Version,Generate_Time,Source_address,Destination_address,"
  37.                        "NAT_Source_IP,NAT_Destination_IP,Rule,Source_User,"
  38.                        "Destination_User,Application,Virtual_System,Source_Zone,"
  39.                        "Destination_Zone,Inbound_Interface,Outbound_Interface,Log_Action,"
  40.                        "Time_Logged,Session_ID,Repeat_Count,Source_Port,Destination_Port,"
  41.                        "NAT_Source_Port,NAT_Destination_Port,Flags,IP_Protocol,Action,"
  42.                        "URL_Filename,Threat_Content_Name,Category,Severity,Direction,"
  43.                        "Sequence_Number,Action_Flags,Source_Country,Destination_Country,"
  44.                        "cpadding,contenttype,pcap_id,filedigest,cloud,url_idx,user_agent,"
  45.                        "filetype,xff,referer,sender,subject,recipient,reportid,"
  46.                        "dg_hier_level_1,dg_hier_level_2,dg_hier_level_3,dg_hier_level_4,"
  47.                        "Virtual_System_Name,Device_Name,file_url )"
  48.                        ""
  49.                        "VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,"
  50.                        "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,"
  51.                        "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s"
  52.                        "); ")
  53.             elif row[3] == "SYSTEM":
  54.                 sql = ("INSERT INTO PADIAGDB.system ("
  55.                        "Domain,Receive_Time,Serial,Type,Threat_Content_Type,Config_Version,"
  56.                        "Generate_Time,Virtual_System,Event_ID,Object,fmt,id,module,Severity,"
  57.                        "Description,Sequence_Number,Action_Flags,dg_hier_level_1,"
  58.                        "dg_hier_level_2,dg_hier_level_3,dg_hier_level_4,Virtual_System_Name,"
  59.                        "Device_Name )"
  60.                        ""
  61.                        "VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,"
  62.                        "%s,%s,%s );")
  63.             else:
  64.                 continue
  65.             try:
  66.                 cursor.execute('SET foreign_key_checks = 0')
  67.                 # Execute the SQL command
  68.                 r = cursor.execute(sql, row)
  69.  
  70.                 #Commit your changes in the database
  71.                 cursor.execute('SET foreign_key_checks = 1')
  72.                 db.commit()
  73.             except Exception as e:
  74.                 logging.exception(e)
  75.                 db.rollback()
  76.      # disconnect from server
  77.     db.close()
  78. # List of all gz files
  79. gz_files = (gz for gz in glob.glob(os.path.join(GZ_DIR, '*.gz')))
  80. # Loop through all gz files
  81. for gz_file in gz_files:
  82.     cmd = ['gz', 'a', 'Test.7z', 'Test', '-mx9']
  83.     subprocess.call(cmd)
  84.     # Step 1
  85.     with gzip.open(gz_file, 'rb') as in_file:
  86.         s = in_file.read()
  87.     # store the uncompressed data
  88.     sql_file = gz_file[:-3]
  89.     # Convert to csv
  90.     sql_file = sql_file[:-4] + '.csv'
  91.     with open(sql_file, 'wb') as out_file:
  92.         out_file.write(s)
  93.     # Step 2: import to sql
  94.     import_sql(out_file, DB_HOST, DB_USER, DB_PASS, DB_NAME)
  95.     # Step 3: remove uncompresed file
  96.     os.remove(sql_file)
Add Comment
Please, Sign In to add comment