Use aspas duplas em "
em vez de aspas simples em '
em $message
. Você bloqueou a expansão de variáveis / matrizes.
$message = "The % HDD usage is @hdd and the % RAM usage is @ram";
Estou compartilhando um script perl aqui, que deve enviar um e-mail com o status HDD / RAM no corpo da mensagem: Além disso, a saída do HDD ocorrerá somente se o uso do% HDD estiver acima de 50%.
Como posso incluir as variáveis declaradas (aqui, @hdd
e @ram
) no corpo da mensagem?
Como posso fazer o programa terminar sem enviar o email se o uso do disco rígido estiver abaixo de 50% ..? Ou simplesmente, o programa de e-mail deve funcionar se e somente se o HDD% estiver acima de 50%.
No script abaixo, a parte de verificação de HDD / RAM está funcionando bem, assim como a parte de envio de e-mail também está funcionando bem. Exceto que, em vez dos valores de HDD / RAM, "@hdd" e "@ram" são exibidos diretamente no e-mail recebido.
\#!/usr/bin/perl
@hdd = grep {$_ >50} (\'df -H'=~/(\S+%)/g);
@ram = \'free | grep Mem | awk '{print $3/$2 * 100.0}'';
use MIME::Lite;
$to = '[email protected]';
$from = '[email protected]';
$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;
Perdoe-me se a pergunta for um pouco ampla. Mas sendo iniciante, por favor, seja gentil o suficiente para ajudá-lo.
Use aspas duplas em "
em vez de aspas simples em '
em $message
. Você bloqueou a expansão de variáveis / matrizes.
$message = "The % HDD usage is @hdd and the % RAM usage is @ram";