1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| while(a==1)
{
FILE * logindex;
char index_name[64];
strcpy(index_name,"logindex3.log");
logindex = fopen("logindex3.log","r+");
if(file_exists_non_empty("logindex3.log")==0)
{
char files_rep[64];
strcpy(files_rep, "./logwork/3");
char command[256];
sprintf(command, "find %s -type f -name \"*.log\" >>allresults.txt && sort allresults.txt >>sortedresult.txt && rm allresults.txt && head -n 100 sortedresult.txt >>%s && rm sortedindex.txt;", files_rep, index_name);
system(command);
printf("%s", "je rentre dans la premiere boucle");
}
else //on vérifie que logindex contienne des lignes !
{
printf("%s", "je rentre dans la deuxieme boucle !");
char * pathlog;
fscanf(logindex,"%[^\n]", pathlog); //on copie le chemin vers le fichier log à traiter
FILE * log;
log = fopen(pathlog, "r+");
printf("%s", pathlog);
/////////// Varibales de récupération des données du fichier log ////////////////
char timestamp[256];
char ip[256];
char port[256];
char eventtype[256];
char id_box[256];
char event[256];
///////////////////////////////////////////////////////////////////////////////
char chaine[200];
if(file_exists_non_empty(pathlog)==0)
{
file_line_delete(pathlog,"logindex3.log"); //Suppression du log de l'index
file_delete(pathlog); // Suppression du fichier log
}// fin if
else
{
while(log !=NULL)
{
// fgets(chaine,125, log);
// fgetc(log); // ligne par ligne
char ligne[256];
fscanf(log,"%[^\n]", &ligne);
printf("%s\n", ligne);
fscanf(log,"%[^;];%[^;];%[^;];%[^;];%[^;];%s", ×tamp, &ip, &port, &eventtype, &id_box, &event);
printf("%s\n %s\n %s\n %s\n %s\n %s\n", timestamp, ip, port, eventtype, id_box, event);
printf("%s", pathlog);
fclose(log);
char line[64];
strcpy(line, ligne);
char filename[64];
strcpy(filename, pathlog);
char command[256];
sprintf(command, "sed -i '/%s/d' %s", line, filename);
system(command);
log = fopen(pathlog, "r+");
printf("\n%s\n", command);
char query[500];
sprintf(query, "INSERT INTO mf_boxes_datalogs(dtlog_added_date,bx_ip,evt_type,bx_id,bx_data) VALUES ( '%s','%s', '%s', '%s', '%s')", ip, ip, eventtype, id_box, event);
res = PQexec(conn, query);
testco = PQresultStatus(res);
status = PQresStatus(testco);
printf("\n%s\n", status);
// PQfinish(conn); // fermeture de la connection
///////// Effacement de la ligne dans le fichier log /////////////
//char delete[256];
// sprintf(delete, "sed '/%s/d' %s ;", ligne, pathlog);
}// fin while
}// fin else
}//fin else if
}// fin boucle principale |
Partager