Как ввести заявленную переменную в почтовое тело при отправке почты с помощью сценария жемчуга?

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

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

  2. Как я могу сделать программу оконечной, не отправляя почту, если использование жесткого диска ниже 50%..? Или просто, почтовая программа должна работать, если и только если % жесткого диска выше 50%.

В ниже сценария, хорошо работает часть проверки жесткого диска/RAM, а также почтовая часть отправки также хорошо работает. Кроме, вместо значений жесткого диска/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;

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

3
задан 26 May 2015 в 10:17

1 ответ

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

$message = "The % HDD usage is @hdd and the % RAM usage is @ram";
0
ответ дан 26 May 2015 в 10:17

Другие вопросы по тегам:

Похожие вопросы: