Salut tout le monde,

j'ai fait une petite sonde nagios en perl qui contrôle que mes backups sont bien faits et qu'il existe bien un fichier existant depuis moins de 24h.

J'ai 3 arguments: nom de fichier, date, taille.

Le nom de mes fichiers de sauvegardes sont constitués ainsi: nom_%date%_%heure%.bak
Code : Sélectionner tout - Visualiser dans une fenêtre à part
toto_2014_11_10_0_00_00.bak
mes fichiers de sauvegarde ont tout les jours un nom de base identique sauf la date et heure qui changent.
Ma question est: comment je peux passer cela en argument à la sonde pour qu'elle recherche tout les fichiers dont le nom commence par "toto_" et qui ont moins de 24h ?

je mets le bout de code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#!/usr/bin/perl -w
 
use strict;
use warnings;
use Nagios::Plugin;
use File::stat;
use File::Basename;
 
use vars qw($VERSION $PROGNAME  $verbose $timeout $result);
$VERSION = '1.0';
 
$PROGNAME = basename($0);
 
my $p = Nagios::Plugin->new(
	usage => "Usage %s [ -v |--verbose ] [ -t <timeout>] 
       [ -f| --file=<chemin_db_backup>] 
       [ -a| --age=<age_en_heures> ] 
       [ -t| --size=<taille min>]",
 
	version =>$VERSION,
	blurb =>"contrôle de la taille et l'age d'un backup
"
);
 
 
$p->add_arg(
	spec =>"file|f=s",
	required => 1,
 	help =>"-f, --file=STRING fichier de backup a controler");
 
$p->add_arg(
	spec =>"age|a=i",
        default => 24,
        help =>"-a, -age=INTEGER fichier de backup a controler");
 
 
$p->add_arg(
        spec =>"size|s=s",
        help =>"-s, --size=INTEGER:INTEGER taille minimale du backup en MB");
 
 
$p->getopts;
 
if ( (defined $p->opts->age) && $p->opts->age < 0 ) {
	$p->nagios_die( " argument --a incorrect ") ;
}
 
my $f = $p->opts->file;
print ( $f);
unless (-e $f) {
	$p->nagios_exit(CRITICAL, "le fichier n'existe pas");
}
 
....
Merci d'avance pour l'aide,