use POSIX qw/ strftime /;
use Getopt::Std;
use Time::Local;
use File::Find;
# -f: Patron de los archivos a validar.
# -d: Indica el directorio a buscar archivos.
# -n: Nombre Archivo Generar.
# -r: Ruta del archivo a buscar
## Asignacion de variables globales
getopts ("f:d:n:r:");
if ((!defined($opt_f)) || (!defined($opt_d)) || (!defined($opt_n)) || (!defined($opt_r))) {
print "Programa que fechas en los archivos de ECS y determina si su fecha es correcta\n\n";
exit;
}
print "--Inicio--\n\n";
## Declaracion variables
$sArchivos =$opt_f;
$sDirectorio =$opt_d;
$sNombreBase =$opt_n;
$sRuta =$opt_r;
my @procesado;
my @no_procesado;
my @busqueda;
my $mtime="";
my $ruta = $opt_r;
## Calculo del Tiempo
print "La fecha de hoy es: ",scalar localtime();
my @ayer = localtime( time() - 86_400 );
my $time = timelocal(0,0,18,@ayer[3..5]);
## Imprimimos la ruta
print "\nDirectorio:$sDirectorio\n";
## Nombre del archivo con fecha
$sFecha=strftime( "%d-%m-%Y.%H.%M.%S", localtime(time) );
$ArchivoResumen=$sNombreBase."+".$sFecha.".txt";
#Separacion de los patrones
@Patrones=split(/\\/,$sArchivos);
#Recorrido de los patrones
foreach $Patron (@Patrones)
{
@Archivos=<$opt_d\\$Patron>;
$Cantidad=$#Archivos + 1;
print "===========================================================\n";
print "Patron:$Patron\n";
print "Cantidad:$Cantidad\n";
#Recorre el arreglo de archivos
foreach $Archivos (@Archivos)
{
$iContador=0;
print "cONT:$iContador\n";
#Separa la ruta
@NombreEspecifico=split(/\\/,$Archivos);
#Extrae el nombre donde se registra el resumen archivo resumen
#aqui va la vara del archivo
$NombreArchivo=$NombreEspecifico[$#NombreEspecifico];
print "--------------------------------\n";
print "Archivo-Ruta:$Archivos\n";
$mtime = (stat("$Archivos"))[9]; # Obtenemos la fecha de modificacion del fichero
print "La fecha de modificacion es:", scalar localtime($mtime);
print "\n";
my $texto = "$Archivos ".scalar localtime($mtime);
if ($mtime > $time) # Segun el $mtime lo guardamos en un sitio u otro del arreglo
{
push (@procesado, $texto); # Insertamos los procesados en el arreglo
#print "@procesado";
}
else
{
push (@no_procesado, $texto); # Insertamos los no procesados en el arreglo
#print "@no_procesado";
find(\$Archivos,$ruta);
my $btime = (stat("$ruta/$Archivos"))[9];
print "El archivo $Archivos se encuentra en la ruta $File::Find::name" if ($btime > $time);
}
#-----------------------------------------------------
}
}
## Escribimos en el archivo
open(RESUMEN,">>$ArchivoResumen") or die "Imposible abrir archivo: '$ArchivoResumen': $!\n";
print RESUMEN "MONITOREO \n";
print RESUMEN '=' x 60,"\n";
print RESUMEN "\n\nARCHIVOS PROCESADOS\n";
print RESUMEN '=' x 40,"\n";
print RESUMEN join ("\n\n", @procesado), "\n";
print RESUMEN "\n\nARCHIVOS NO PROCESADOS\n";
print RESUMEN '=' x 40,"\n";
print RESUMEN join ("\n\n", @no_procesado), "\n";
print RESUMEN "\n\nBUSQUEDA DE ARCHIVOS NO PROCESADOS\n";
close(RESUMEN);
print "--Salida--\n";