Browse Source

ajout Makefile pour cpp
par acquie de conscience, si un flow est de l'ordre du Go, il ne sera plus ignoré par le préparser flex
Modifié le README : infos pour config Debian 8.5
commencé à rednre indépendant le chef_d_orchestre

Citnop 3 years ago
parent
commit
8f912e6fe5
5 changed files with 124 additions and 2 deletions
  1. 41 1
      README.md
  2. 2 1
      chef/chef_d_orchestre.sh
  3. 40 0
      cpp/Makefile
  4. 19 0
      preparser/acsvify.l
  5. 22 0
      preparser/csvify.l

+ 41 - 1
README.md

@@ -39,7 +39,7 @@ Le script chef_d_orchestre suit les étapes suivantes pour tous les sites (Warni
39 39
 Téléchargement & Compilation
40 40
 ============================
41 41
 
42
-Pour téléchrager le projet, taper la commande :
42
+Pour télécharger le projet, taper la commande :
43 43
     $ git clone https://git.hashtagueule.fr/citnop/YaPLog.git
44 44
   ou
45 45
     $ git clone git@htgl.fr:citnop/YaPLog.git si vous êtes le propriétaire du dépôt.
@@ -48,3 +48,43 @@ Pour téléchrager le projet, taper la commande :
48 48
   et compilez tous les fichiers à l'aide de la commande :
49 49
     $ make all
50 50
 
51
+Dépendances
52
+===========
53
+
54
+Le projet compile et tourne sur Debian 8.5 (Jessie).
55
+Il nécessite les packets/programmes suivants :
56
+    git 
57
+    flex
58
+    gcc >= 4.9 (versions précédentes non testées)
59
+    g++ >= 4.9 (compilation avec std=c++11 non testée)
60
+    bash (pas testé avec d'autres shells)
61
+    gnuplot (graphiques)
62
+    zip/unzip 
63
+    texlive-full (pour générer la documentation)
64
+    rsync (cp, en mieux, avec les dates y tout, qui vend du rêve et de la synchronisation)
65
+    make
66
+    perl
67
+  
68
+  et le programme externe :
69
+    nfdump
70
+
71
+les paquets suivants peuvent aider au débug :
72
+    gdb
73
+    htop
74
+    /usr/bin/time
75
+    valgrind
76
+
77
+Pour les installer :
78
+--------------------
79
+
80
+  en tant que root :
81
+    # apt-get install time git flex gcc g++ gnuplot zip unzip texlive-full rsync make htop gdb valgrind perl
82
+  en tant que sudoer :
83
+    $ sudo apt-get install time git flex gcc g++ gnuplot zip unzip texlive-full rsync make htop gdb valgrind perl 
84
+  puis, il faut installer nfdump :
85
+    wget -c https://sourceforge.net/projects/nfdump/files/stable/nfdump-1.6.13/nfdump-1.6.13.tar.gz/download
86
+  (le lien peut avoir changé/ou la version n'être plus à jour)
87
+  pour installer nfdump :
88
+    ./configure && make && make install
89
+  suffisent.
90
+

+ 2 - 1
chef/chef_d_orchestre.sh

@@ -1,5 +1,6 @@
1 1
 #!/bin/bash
2 2
 RS=/usr/bin/rsync # better copy
3
+NBCPU=4 # nombre de threads à lancer. correspond au nombre de CPU/cœurs. pair de préférence.
3 4
 res=0 # cmd ok/nok ?
4 5
 sout () # info
5 6
 {
@@ -204,7 +205,7 @@ do
204 205
 	if [ -d "/home/administrateur/prod/sandbox/site${i}" ] 
205 206
 	then
206 207
 		sok "${i}"
207
-		/home/administrateur/prod/parser/graphEchantTabl.out 4 "/home/administrateur/prod/sandbox/site${i}/site${i}.csv" ${j} "/home/administrateur/prod/sandbox/site${i}/res${i}.csv" 
208
+		/home/administrateur/prod/parser/graphEchantTabl.out ${NBCPU} "/home/administrateur/prod/sandbox/site${i}/site${i}.csv" ${j} "/home/administrateur/prod/sandbox/site${i}/res${i}.csv" 
208 209
 		res=$((res + $?))
209 210
 		rm -f /home/administrateur/prod/sandbox/site${i}/site${i}.csv
210 211
 	else

+ 40 - 0
cpp/Makefile

@@ -0,0 +1,40 @@
1
+CC=/usr/bin/g++
2
+CFLAGS=-O3 -Wall -std=c++14 -Werror=conversion -Werror=uninitialized 
3
+INCL= . 
4
+LINK= -pthread 
5
+RM=/bin/rm
6
+
7
+
8
+# targets
9
+all: graphEchantTabl.out
10
+
11
+help: h
12
+
13
+# rules
14
+graphEchantTabl.out: main.o Data.o 
15
+	${CC} main.o Data.o Packet.o Traffic.o pontisiteip.o -o graphEchantTabl.out ${LINK}
16
+
17
+# objects
18
+main.o: main.cpp Data.o Packet.o Traffic.o pontisiteip.o
19
+	${CC} ${CFLAGS} -c main.cpp -I ${INCL}
20
+
21
+Packet.o: Packet.cpp
22
+	${CC} ${CFLAGS} -c Packet.cpp -I ${INCL}
23
+
24
+Traffic.o: Traffic.cpp
25
+	${CC} ${CFLAGS} -c Traffic.cpp -I ${INCL}
26
+
27
+Data.o: Data.cpp
28
+	${CC} ${CFLAGS} -c Data.cpp -I ${INCL}
29
+
30
+pontisiteip.o: pontisiteip.cpp
31
+	${CC} ${CFLAGS} -c pontisiteip.cpp -I ${INCL}
32
+
33
+# help
34
+h:
35
+	: "taper 'make' pour compiler le projet"
36
+
37
+# clean
38
+clean:
39
+	${RM} -f ./*.o 
40
+

+ 19 - 0
preparser/acsvify.l

@@ -80,6 +80,25 @@ void echoM()
80 80
     fprintf(stdout, "%c", yytext[idx]);
81 81
     fprintf(stdout, "00000");
82 82
 }
83
+void echoG()
84
+{
85
+    int idx = 0; // par acquis de conscience.
86
+    int dot = 0;
87
+    while (dot == 0)
88
+    {
89
+        if (yytext[idx] == '.')
90
+        {
91
+            dot++;
92
+        }
93
+        else
94
+        {
95
+            fprintf(stdout, "%c", yytext[idx]);
96
+        }
97
+        idx++;
98
+    }
99
+    fprintf(stdout, "%c", yytext[idx]);
100
+    fprintf(stdout, "00000000");
101
+}
83 102
 %}
84 103
 
85 104
 INT                 [1-9]+[0-9]*

+ 22 - 0
preparser/csvify.l

@@ -80,6 +80,28 @@ void echoM()
80 80
     fprintf(stdout, "00000");
81 81
     fprintf(stdout, "\e[0m"); // fin couleur
82 82
 }
83
+void echoG()
84
+{
85
+    // acquis de conscience.
86
+    fprintf(stdout, "\e[34m"); // début couleur
87
+    int idx = 0;
88
+    int dot = 0;
89
+    while (dot == 0)
90
+    {
91
+        if (yytext[idx] == '.')
92
+        {
93
+            dot++;
94
+        }
95
+        else
96
+        {
97
+            fprintf(stdout, "%c", yytext[idx]);
98
+        }
99
+        idx++;
100
+    }
101
+    fprintf(stdout, "%c", yytext[idx]);
102
+    fprintf(stdout, "00000000");
103
+    fprintf(stdout, "\e[0m"); // fin couleur
104
+}
83 105
 
84 106
 
85 107
 %}