Hello,
This is my first script in perl. I need some help to create a logfile of some lines executed.
FOr this I do:
#!C:/Perl/bin/perl.exe -w
#*********************************************************
# Fonction: Nettoyage de logs *
# *
# Usage: Script utilise les paramètres dans le script. *
#*********************************************************
#
# Creation: 26.09.2005 JFP
#
# Parametres du script
$retention = 12; # Nbre de jours en entiers
$log_folder= 'c:/dev/perl/LOG'; # Répertoire à nettoyer
$file_genname = 'DailyMpgateway'; # Nom générique du fichier
# Definition de l'heure
my ($secondes, $minutes, $heures, $jour_mois, $mois,
$an, $jour_semaine, $jour_calendaire, $heure_ete) = localtime(time);
my $CTIME_String = localtime(time);
# Fichier de log du script
open WRITER,">> decode.txt" or die "Le fichier ne peut être édité !\n";
# Entete du fichier de log
print WRITER "------------------------ DEBUT ------------------------ \n";
print WRITER " Script start at: $CTIME_String \n";
# Affiche les informations sur l'environnement
print "\n \n \n";
$machine = Win32::NodeName;
print "Script start on: $machine \n";
($string, $major, $minor, $build, $id) = Win32::GetOSVersion();
@os = qw(Win32s, Win95, WinNT);
print WRITER "With OS Version : $os[$id] $major\.$minor $string (Build $build)\n";
# Affiche le répertoire de départ du script
$currpath = Win32::GetCwd();
print WRITER "Cuurent directory is $currpath \n";
# Changement de répertoire
chdir("$log_folder") || die "cannot cd to $log_folder ($!)";
$currpath = Win32::GetCwd();
print WRITER "Successfully changed to folder: $currpath \n \n \n";
# Affiche les logs présents
@all_logs = glob("$file_genname.log.*");
print WRITER "List of Logs present on folder: \n";
foreach (@all_logs) {
next unless -f;
next unless -r;
$age = -M;
print WRITER "Log: $_ Date: $age \n";
}
# Affiche puis supprime les logs
print "\n \n";
opendir(DIR,'.') or die "$!";
my @logs_todelete = grep(/^$file_genname\.log\./ && int -M > $retention, readdir DIR);
close(DIR);
print WRITER "\n Files to be deleted:\n";
print WRITER "$_\n" for @logs_todelete;
print WRITER " Script finished at: $CTIME_String \n" ;
print WRITER " ------------------------ FIN --------------------------- \n";
close WRITER;
Is there any way to have someting more visible like always using "print WRITER" ???
And is there a way to know how many time the script takes ?
This is my first script in perl. I need some help to create a logfile of some lines executed.
FOr this I do:
#!C:/Perl/bin/perl.exe -w
#*********************************************************
# Fonction: Nettoyage de logs *
# *
# Usage: Script utilise les paramètres dans le script. *
#*********************************************************
#
# Creation: 26.09.2005 JFP
#
# Parametres du script
$retention = 12; # Nbre de jours en entiers
$log_folder= 'c:/dev/perl/LOG'; # Répertoire à nettoyer
$file_genname = 'DailyMpgateway'; # Nom générique du fichier
# Definition de l'heure
my ($secondes, $minutes, $heures, $jour_mois, $mois,
$an, $jour_semaine, $jour_calendaire, $heure_ete) = localtime(time);
my $CTIME_String = localtime(time);
# Fichier de log du script
open WRITER,">> decode.txt" or die "Le fichier ne peut être édité !\n";
# Entete du fichier de log
print WRITER "------------------------ DEBUT ------------------------ \n";
print WRITER " Script start at: $CTIME_String \n";
# Affiche les informations sur l'environnement
print "\n \n \n";
$machine = Win32::NodeName;
print "Script start on: $machine \n";
($string, $major, $minor, $build, $id) = Win32::GetOSVersion();
@os = qw(Win32s, Win95, WinNT);
print WRITER "With OS Version : $os[$id] $major\.$minor $string (Build $build)\n";
# Affiche le répertoire de départ du script
$currpath = Win32::GetCwd();
print WRITER "Cuurent directory is $currpath \n";
# Changement de répertoire
chdir("$log_folder") || die "cannot cd to $log_folder ($!)";
$currpath = Win32::GetCwd();
print WRITER "Successfully changed to folder: $currpath \n \n \n";
# Affiche les logs présents
@all_logs = glob("$file_genname.log.*");
print WRITER "List of Logs present on folder: \n";
foreach (@all_logs) {
next unless -f;
next unless -r;
$age = -M;
print WRITER "Log: $_ Date: $age \n";
}
# Affiche puis supprime les logs
print "\n \n";
opendir(DIR,'.') or die "$!";
my @logs_todelete = grep(/^$file_genname\.log\./ && int -M > $retention, readdir DIR);
close(DIR);
print WRITER "\n Files to be deleted:\n";
print WRITER "$_\n" for @logs_todelete;
print WRITER " Script finished at: $CTIME_String \n" ;
print WRITER " ------------------------ FIN --------------------------- \n";
close WRITER;
Is there any way to have someting more visible like always using "print WRITER" ???
And is there a way to know how many time the script takes ?