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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
#!/usr/bin/perl
use strict; use warnings;
use DBI;
use POSIX qw(strftime);
Citation:
partie 1 du code: récupération des infos depuis un fichier plat
$Time = strftime "%Y%m%d", localtime;
$Seuil="10%";
while (<>) {
undef @free;
chomp;
if ( /System information for \\\\(.*)\:/ ) {
$host = $1;
}
if ( /Fixed/ ) {
push @free, split ();
} else {
next;
}
$Volume = $free[0];
$Type = $free[1];
$Format = $free[2];
if ( $#free == 7 ) {
$Size = "$free[3] $free[4]";
$Frees = "$free[5] $free[6]";
$Freep =$free[7];
}
if ( $#free == 8 ) {
$Label = $free[3];
$Size = "$free[4] $free[5]";
$Frees = "$free[6] $free[7]";
$Freep =$free[8];
}
if ($Freep <= $Seuil){
write STDOUT;
}
}
format STDOUT_TOP =
@<<<<<<<
Date, $Time
@<<<<<<<<<;@<<;@<<<<<<<<;@>>>>>>>;@>>>>>>;@>>>>
Hostname, Volume, Label, Size, Frees, Freep
.
format STDOUT =
@<<<<<<<<<;@<<;@<<<<<<<<;@>>>>>>>;@>>>>>>;@>>>>
$host, $Volume, $Label, $Size, $Frees, $Freep
Citation:
fin de la partie 1 qui envoie le résultat dans un mail
Citation:
2e partie du code: récupération des variables pour les intégrer dans une db de manière automatique
use DBI;
my $db = 'DBI:...';
my $user = '...';
my $pass = '...';
my $dbh = DBI->connect($db, $user, $pass)
or die "connexion impossible";
my $req = $dbh->prepare("INSERT INTO checkfs VALUES(?, ?, ?, ?, ?, ?, ?)");
while( my $Hostname != "" ) {
Citation:
le code est il valable pour récupérer les variables plus haut et les incorporer avec la requête qui suit?
$req->execute( $Date, $Hostname, $Volume, $Label, $Size, $Frees, $Freep )
or die "requete impossible";
}
$dbh->disconnect();
__END__ |