Как ввести объявленную переменную в теле письма при отправке почты с помощью perl-скрипта?
Здесь я делюсь сценарием Perl, который должен отправлять почту со статусом HDD/RAM в теле сообщения: Кроме того, выход HDD будет происходить, только если%HDD превышает 50%.
Как я могу включить объявленные переменные (здесь,
@hdd
а также@ram
) в теле сообщения?Как я могу заставить программу завершать работу без отправки почты, если использование жесткого диска ниже 50%..? Или просто, почтовая программа должна работать тогда и только тогда, когда% жесткого диска выше 50%.
В приведенном ниже сценарии часть проверки HDD/RAM работает нормально, а часть отправки почты также работает нормально. Кроме того, вместо значений HDD/RAM, "@hdd" и "@ram" отображаются непосредственно в полученной почте.
\#!/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 = 'HDD / RAM alerts';
$message = 'The % HDD usage is @hdd and the % RAM usage is @ram';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Data => $message
);
$msg->send;
Простите, если вопрос немного широк. Но, будучи новичком, будьте любезны помочь.
1 ответ
Используйте двойную кавычку "
вместо одиночной кавычки '
в $message
, Вы заблокировали расширение переменных / массивов.
$message = "The % HDD usage is @hdd and the % RAM usage is @ram";