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

3

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

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

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

Простите меня, если вопрос немного широк. Но, будучи новичком, будьте любезны, чтобы помочь ему.

    
задан kiran bbnl 26.05.2015 в 08:36
источник

1 ответ

5

Использовать двойную кавычку " вместо одной кавычки ' в $message . Вы заблокировали расширение переменных / массивов.

$message = "The % HDD usage is @hdd and the % RAM usage is @ram";
    
ответ дан AnFi 26.05.2015 в 09:30
источник