]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blobdiff - inst/antifraude.pl
Se agrega código fuente, instalación y util.sh.
[z.facultad/75.08/llamadas.git] / inst / antifraude.pl
index 47ffc42439fcf1c03c644c16d5ce9ad67a3e2285..6583252cba8982872bf5d5d9448203dbdfc05516 100644 (file)
@@ -64,7 +64,8 @@ sub getConfVar {
        do { $line = <CONFIGFILE> } until $. == $linenumber;
        close(CONFIGFILE);
        chop($line);
        do { $line = <CONFIGFILE> } until $. == $linenumber;
        close(CONFIGFILE);
        chop($line);
-       ($confvar = $line) =~ s/^.*= (.*)/$1/;
+       ($confvar = $line) =~ s/"(.*)"$/$1/;
+       $confvar =~ s/^.*=//;
        return $confvar;
 }
 
        return $confvar;
 }
 
@@ -75,15 +76,29 @@ sub logEntry {
        my $log = "$CONFDATA{logdir}/$CONFDATA{logfile}";
        # Fetch date and Format it
        ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
        my $log = "$CONFDATA{logdir}/$CONFDATA{logfile}";
        # Fetch date and Format it
        ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
-       $year += 1900; $year = sprintf("%02d", $year % 100); ++$mon;
-       $user = getlogin || "Unidentified";
-       $commonstring = "[$mday/$mon/$year $hour:$min:$sec|$user|antifraude]";
+       $mon =~ s/^(\d)$/0$1/;
+       $mday =~ s/^(\d)$/0$1/;
+       $hour =~ s/^(\d)$/0$1/;
+       $min =~ s/^(\d)$/0$1/;
+       $year += 1900; ++$mon;
+       $user = "$ENV{USER}";
+       $commonstring = "$mday/$mon/$year-$hour:$min $user antifraude:";
        # Append to log
        open(LOGFILE,">>$log") or die "No se pudo abrir el archivo de log";
        seek(LOGFILE,0,2);
        # Append to log
        open(LOGFILE,">>$log") or die "No se pudo abrir el archivo de log";
        seek(LOGFILE,0,2);
-       print LOGFILE "$commonstring - $logentry\n";
+       print LOGFILE "$commonstring \"$logentry\"\n";
+       $filesize = tell(LOGFILE);
        close(LOGFILE);
 
        close(LOGFILE);
 
+       # Chequeo el logsize y su lo supero me quedo con 100 lineas
+       if ($filesize > $CONFDATA{logsize})
+       {
+               open(LOGFILE,"+<$log");
+               do ($line = <LOGFILE>) until $. == 100;
+               truncate(LOGFILE,tell(LOGFILE));
+               close(LOGFILE);
+       }
+
        if ($consoleout) { print("$logentry\n"); }
 }
 
        if ($consoleout) { print("$logentry\n"); }
 }
 
@@ -98,8 +113,6 @@ sub badCall {
 sub checkUmbrales {
        local(*callfields) = $_[0];
        my $callsfile = $_[1];
 sub checkUmbrales {
        local(*callfields) = $_[0];
        my $callsfile = $_[1];
-       print("Callfields: @callfields\n");
-       print("Callfile: $callsfile\n");
        my $matchedUmbral = 0;
        my $i = 0;
 
        my $matchedUmbral = 0;
        my $i = 0;
 
@@ -124,13 +137,19 @@ sub checkUmbrales {
        if ($matchedUmbral > 0) {
                # Obtengo algunos datos
                ($central = $callsfile) =~ s/^.*\.//;
        if ($matchedUmbral > 0) {
                # Obtengo algunos datos
                ($central = $callsfile) =~ s/^.*\.//;
-               $user = getlogin || 'Unidentified';
+               $user = "$ENV{USER}";
 
                # Fetch date and Format it
                ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
                $year += 1900; ++$mon;
 
                # Fetch date and Format it
                ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
                $year += 1900; ++$mon;
-               $date = "$year$mon$mday";
-               $time = "$hour$min$sec";
+               $mon =~ s/^(\d)$/0$1/;
+               $mday =~ s/^(\d)$/0$1/;
+               $hour =~ s/^(\d)$/0$1/;
+               $min =~ s/^(\d)$/0$1/;
+               $sec =~ s/^(\d)$/0$1/;
+               $user = "$ENV{USER}";
+               $date = "${year}${mon}${mday}";
+               $time = "${hour}${min}${sec}";
 
                # Preparo el registro de alarma
                $alarmEntry = "$callfields[7];$central;$callfields[0];$callfields[1];$regid;$callfields[2];$callfields[3];$user;$date;$time";
 
                # Preparo el registro de alarma
                $alarmEntry = "$callfields[7];$central;$callfields[0];$callfields[1];$regid;$callfields[2];$callfields[3];$user;$date;$time";
@@ -148,35 +167,22 @@ sub checkUmbrales {
 }
 
 # --------- MAIN CODE -------- #
 }
 
 # --------- MAIN CODE -------- #
-# En la version final, recibo por param el directorio del .conf, por ahora
-# recibo un dir donde tengo archivos de llamadas
-if ((!$ARGV[0]) || (! -d $ARGV[0])) { 
-       print("No se ha ingresado un directorio fuente de llamadas\n");
-       exit 1;
-}
-
-# Lock file
+# File locking..
+if (is_lock()) { exit 1; }
 lock();
 
 # Defino some GLOBALS
 lock();
 
 # Defino some GLOBALS
-$CONFDIR = shift;
-$CONFDATA{logdir} = getConfVar("$CONFDIR/afinstal.conf",12);
-$CONFDATA{logfile} = getConfVar("$CONFDIR/afinstal.conf",13);
-$CONFDATA{logsize} = getConfVar("$CONFDIR/afinstal.conf",14);
-$CONFDATA{datadir} = getConfVar("$CONFDIR/afinstal.conf",15);
-$CONFDATA{alarmlog} = "$CONFDIR/alarmas/alarmas.txt";
+$CONFDIR = "$ENV{'HOME'}/.antifraude";
+$CONFDATA{logdir} = getConfVar("$CONFDIR/conf/antifraude.conf",2);
+$CONFDATA{logfile} = getConfVar("$CONFDIR/conf/antifraude.conf",3);
+$CONFDATA{logsize} = getConfVar("$CONFDIR/conf/antifraude.conf",4);
+$CONFDATA{datadir} = getConfVar("$CONFDIR/conf/antifraude.conf",5);
 
 # Cargo los UMBRALES en memoria
 open(PARAMFILE,"$CONFDIR/umbrales.param") or die "No se pudo abrir el archivo de umbrales";
 @UMBRALES = <PARAMFILE>;
 close(PARAMFILE);
 
 
 # Cargo los UMBRALES en memoria
 open(PARAMFILE,"$CONFDIR/umbrales.param") or die "No se pudo abrir el archivo de umbrales";
 @UMBRALES = <PARAMFILE>;
 close(PARAMFILE);
 
-# For Debug Only
-print("\nLogdir: $CONFDATA{logdir}\n");
-print("Logfile: $CONFDATA{logfile}\n");
-print("Logsize: $CONFDATA{logsize}\n");
-print("Datadir: $CONFDATA{datadir}\n\n");
-
 # Proceso los archivos de llamadas
 @archivos = getCallFiles();
 FILE: foreach $filename (@archivos) {
 # Proceso los archivos de llamadas
 @archivos = getCallFiles();
 FILE: foreach $filename (@archivos) {