Advertisement
Guest User

Untitled

a guest
Apr 30th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.87 KB | None | 0 0
  1. import pymysql
  2. import logging
  3. # Database Infomation
  4. DB_HOST='10.1.1.38'
  5. DB_USER='diaguser'
  6. DB_PASS='Password'
  7. DB_NAME='PADIAGDB'
  8. filename='20180403.cgsdgp-014.log'
  9. logfile="exception.log"
  10.  
  11. def csv_reader(file, header=False):
  12.     import csv
  13.     with open(file, "r") as f:
  14.         reader = csv.reader(f)
  15.  
  16.         if header:
  17.             next(reader)
  18.  
  19.         for row in reader:
  20.             yield row
  21. def import_sql()
  22. logging.basicConfig(level=logging.DEBUG,filename=logfile)
  23. # Open database connection
  24. db = pymysql.connect(host=DB_HOST,
  25.                         user=DB_USER,
  26.                         password=DB_PASS,
  27.                         db=DB_NAME,
  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.  
  54.         elif row[3] == "THREAT":
  55.             sql = ( "INSERT INTO PADIAGDB.threat ("
  56.                     "Domain,Receive_Time,Serial,Type,Threat_Content_Type,"
  57.                     "Config_Version,Generate_Time,Source_address,Destination_address,"
  58.                     "NAT_Source_IP,NAT_Destination_IP,Rule,Source_User,"
  59.                     "Destination_User,Application,Virtual_System,Source_Zone,"
  60.                     "Destination_Zone,Inbound_Interface,Outbound_Interface,Log_Action,"
  61.                     "Time_Logged,Session_ID,Repeat_Count,Source_Port,Destination_Port,"
  62.                     "NAT_Source_Port,NAT_Destination_Port,Flags,IP_Protocol,Action,"
  63.                     "URL_Filename,Threat_Content_Name,Category,Severity,Direction,"
  64.                     "Sequence_Number,Action_Flags,Source_Country,Destination_Country,"
  65.                     "cpadding,contenttype,pcap_id,filedigest,cloud,url_idx,user_agent,"
  66.                     "filetype,xff,referer,sender,subject,recipient,reportid,"
  67.                     "dg_hier_level_1,dg_hier_level_2,dg_hier_level_3,dg_hier_level_4,"
  68.                     "Virtual_System_Name,Device_Name,file_url )"
  69.                     ""
  70.                     "VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,"
  71.                     "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,"
  72.                     "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s"
  73.                     "); " )
  74.  
  75.         elif row[3] == "TRAFFIC":
  76.             sql = ( "INSERT INTO PADIAGDB.traffic ("
  77.                     "Domain,Receive_Time,Serial,Type,Threat_Content_Type,Config_Version,"
  78.                     "Generate_Time,Source_address,Destination_address,NAT_Source_IP,"
  79.                     "NAT_Destination_IP,Rule,Source_User,Destination_User,Application,"
  80.                     "Virtual_System,Source_Zone,Destination_Zone,Inbound_Interface,"
  81.                     "Outbound_Interface,Log_Action,Time_Logged,Session_ID,Repeat_Count,"
  82.                     "Source_Port,Destination_Port,NAT_Source_Port,NAT_Destination_Port,"
  83.                     "Flags,IP_Protocol,Action,Bytes,Bytes_Sent,Bytes_Received,Packets,"
  84.                     "Start_Time,Elapsed_Time,Category,Padding,Sequence_Number,Action_Flags,"
  85.                     "Source_Country,Destination_Country,cpadding,pkts_sent,pkts_received,"
  86.                     "session_end_reason,dg_hier_level_1,dg_hier_level_2,dg_hier_level_3,"
  87.                     "dg_hier_level_4,Virtual_System_Name,Device_Name,action_source )"
  88.                     ""
  89.                     "VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,"
  90.                     "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,"
  91.                     "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s"
  92.                     "); " )
  93.         elif row[3] == "SYSTEM":
  94.             sql = ("INSERT INTO PADIAGDB.system ("
  95.                    "Domain,Receive_Time,Serial,Type,Threat_Content_Type,Config_Version,"
  96.                    "Generate_Time,Virtual_System,Event_ID,Object,fmt,id,module,Severity,"
  97.                    "Description,Sequence_Number,Action_Flags,dg_hier_level_1,"
  98.                    "dg_hier_level_2,dg_hier_level_3,dg_hier_level_4,Virtual_System_Name,"
  99.                    "Device_Name )"
  100.                    ""
  101.                    "VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,"
  102.                    "%s,%s,%s );")
  103.         else:
  104.             continue
  105.  
  106.  
  107.         try:
  108.             cursor.execute('SET foreign_key_checks = 0')
  109.             # Execute the SQL command
  110.             r = cursor.execute(sql, row)
  111.  
  112.             #Commit your changes in the database
  113.             cursor.execute('SET foreign_key_checks = 1')
  114.             db.commit()
  115.             #print "test"
  116.  
  117.         except Exception as e:
  118.             logging.exception(e)
  119.             db.rollback()
  120.  
  121. # disconnect from server
  122. db.close()
  123.  
  124. #####################################################################
  125. # Main
  126. #####################################################################
  127.  
  128. # List of all gz files
  129. gz_files = (gz for gz in glob.glob(os.path.join(GZ_DIR, '*.gz')))
  130.  
  131. # Loop through all gz files
  132. for gz_file in gz_files:
  133.     # Step 1
  134.     with gzip.open(gz_file, 'rb') as in_file:
  135.         s = in_file.read()
  136.  
  137.     # store the uncompressed data
  138.     sql_file = gz_file[:-3]
  139.  
  140.     # Convert to csv
  141.     sql_file = sql_file[:-4] + '.csv'
  142.     with open(sql_file, 'wb') as out_file:
  143.         out_file.write(s)
  144.  
  145.     # Step 2: import to sql
  146.     import_sql(sql_file)
  147.  
  148.     # Step 3: remove uncompresed file
  149.     os.remove(sql_file)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement