-
Notifications
You must be signed in to change notification settings - Fork 0
/
Count.pl
59 lines (50 loc) · 1.72 KB
/
Count.pl
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
#!/usr/bin/perl
my %H;
# ----------------------------------------------------------------------------------------------------------------------------------
# fonction de scan d'un fichier de logs pour compter le nombre d'occurence de chaque regle
# ----------------------------------------------------------------------------------------------------------------------------------
sub ScanLogs {
my $authen=0;
my $pasauthen=0;
my $file = shift;
my $datelog = shift;
my $type_log = shift;
my $nb_lines = 0;
my $date=`date`;
local (*IN);
open (IN, $file) or die "can not open file $file";
while (<IN>) {
$nb_lines++;
if ( /authen/ ) {
$authen++;
}
else {
$pasauthen++;
}
} # parcourir toutes les lignes du fichier
close IN;
die "Impossible douvrir le fichier\n" unless open(DESC,">>/var/log/resultat_log.txt");
# print DESC "\n $date $datelog read $nb_lines total\n";
print DESC "\n$datelog;$nb_lines";
# print DESC "nombre Logs authen : $authen\n";
# print DESC "nombre Logs pasauthen : $pasauthen\n";
close (DESC);
} # ScanLogs
# ----------------------------------------------------------------------------------------------------------------------------------
# main
# ----------------------------------------------------------------------------------------------------------------------------------
my $ANNEE=`date --date="-1day" '+%Y'` ;
my $MOIS=`date --date="-1day" '+%m'` ;
my $JOUR=`date --date="-1day" '+%d'` ;
chomp $ANNEE;
chomp $MOIS;
chomp $JOUR;
@type = qw ( pasauthen authen );
foreach $t ( @type )
{
$log_name = "logs_debug_$t-" . $ANNEE . '-' . $MOIS . "-" . $JOUR;
undef %H;
foreach $file (</var/log/$log_name>) {
ScanLogs ($file,$log_name,$t);
}
}