OVH Cloud OVH Cloud

nommer des fichiers

3 réponses
Avatar
mister_eon
bonjour a tous

je dois faire un back up de system tous les jour et le fichier
resultant doit s appeller backupYEAR/DAY/Month
je ne sais pas comment nommer mes fichier de maniere dynamique pour qu
il est la date de la journée dans leur nom (backup20031009)
je cherche a le faire en Perl ou en un autre langage de script
(bash...)

d avance merci pour vos reponse

Antoine

3 réponses

Avatar
Thomas Lemoine
(Antoine) nous racontait...

je dois faire un back up de system tous les jour et le fichier
resultant doit s appeller backupYEAR/DAY/Month
je ne sais pas comment nommer mes fichier de maniere dynamique pour qu
il est la date de la journée dans leur nom (backup20031009)


J'avais résolu un problème similaire de cette façon il y a quelque temps :

my $filename;
my $dateY;
my $dateM;
my $dateD;
my %mois = ( "Jan" => "01", "Feb" => "02", "Mar" => "03", "Apr" => "04",
"May" => "05", "Jun" => "06", "Jul" => "07", "Aug" => "08",
"Sep" => "09", "Oct" => "10", "Nov" => "11", "Dec" => "12" );
my $date = localtime;

$dateY = substr($date, 20, 4);
$dateM = $mois{substr($date, 4, 3)};
$dateD = substr($date, 8, 2);
$filename = "backup$dateY$dateD$dateM";

--
conclusion : il est possible d'utiliser slrn sous windows, malgre le
fait que les francais utilisent des accents et des cedilles...
-- luc2

Avatar
Laurent Wacrenier
Antoine écrit:
je dois faire un back up de system tous les jour et le fichier
resultant doit s appeller backupYEAR/DAY/Month
je ne sais pas comment nommer mes fichier de maniere dynamique pour qu
il est la date de la journée dans leur nom (backup20031009)


my @date = localtime;
$fichier = sprintf "backup%04d%02d%02d", $date[5]+1900, $date[4]+1, $date[3];

Avatar
Michel Rodriguez
Antoine wrote:


je dois faire un back up de system tous les jour et le fichier
resultant doit s appeller backupYEAR/DAY/Month
je ne sais pas comment nommer mes fichier de maniere dynamique pour qu
il est la date de la journée dans leur nom (backup20031009)
je cherche a le faire en Perl ou en un autre langage de script
(bash...)


Problemes de dates? C'est le moment de sortir l'artillerie POSIX et ses
formats magiques:

#!/usr/bin/perl -lw
use strict;

use POSIX qw(strftime);
use File::stat; # uniquement si on veut la date de modif d'un fichier

# pour la date du jour
print strftime( "backup%Y%m%d", localtime());
# pour la date de modif du fichier
print strftime( "backup%Y%m%d", localtime(stat( 'fichier')->mtime));

__
Michel Rodriguez
Perl & XML
http://xmltwig.com