3 votes

Comment entrer une variable déclarée dans le corps du mail lors de l'envoi d'un mail à l'aide d'un script perl?

Je partage ici un script perl, qui est censé envoyer un e-mail avec l'état du HDD/RAM dans le corps du message : De plus, la sortie du HDD ne se produira que si l'utilisation du %HDD est supérieure à 50%.

  1. Comment puis-je inclure les variables déclarées (ici, @hdd et @ram) dans le corps du message ?

  2. Comment puis-je faire en sorte que le programme se termine sans envoyer le mail si l'utilisation du HDD est inférieure à 50%..? Ou simplement, le programme de messagerie ne doit fonctionner que si le % du HDD est supérieur à 50%.

Dans le script ci-dessous, la vérification du HDD/RAM fonctionne bien, ainsi que l'envoi du mail. Sauf, au lieu des valeurs HDD/RAM, "@hdd" et "@ram" sont affichés directement dans le mail reçu.

\#!/usr/bin/perl
@hdd = grep {$_ >50} (\`df -H`=~/(\S+%)/g);
@ram = \`free | grep Mem | awk '{print \$3/\$2 * 100.0}'`;
use MIME::Lite;
$to = 'admin@company.co.in';
$from = 'alerts@company.co.in';
$subject = 'Alertes HDD / RAM';
$message = 'L'utilisation du % HDD est @hdd et l'utilisation du % RAM est @ram';
$msg = MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Data     => $message
                 );
 $msg->send;

Excusez-moi si la question est un peu vague. Mais en tant que débutant, veuillez être assez aimable pour m'aider.

5voto

Utilisez des guillemets doubles " au lieu de guillemets simples ' dans la $message. Vous avez bloqué l'expansion des variables/tableaux.

$message = "Le taux d'utilisation du disque dur est de % à @hdd et le taux d'utilisation de la RAM est de % à @ram";

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X