Как ввести объявленную переменную в теле письма при отправке почты с помощью perl-скрипта?

Здесь я делюсь сценарием Perl, который должен отправлять почту со статусом HDD/RAM в теле сообщения: Кроме того, выход HDD будет происходить, только если%HDD превышает 50%.

  1. Как я могу включить объявленные переменные (здесь, @hdd а также @ram) в теле сообщения?

  2. Как я могу заставить программу завершать работу без отправки почты, если использование жесткого диска ниже 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";
Другие вопросы по тегам