Perl sendmail anexar arquivos de log match date format

1

Eu quero enviar arquivos de log com formato de data correspondente, por exemplo AAAA-MM-DD - *. Logar como anexos no script Perl. No BASH, isso pode ser feito facilmente por:

[ -f $DIR/explog/$(date "+%Y-%m-%d")-*-host1.log ] && mutt -s "subject here" \
-a $DIR/explog/$(date "+%Y-%m-%d")-*-host1.log [email protected] </dev/null

Por algum motivo, preciso fazer isso no script Perl. A parte principal do script Perl é como abaixo, eu quero adicionar arquivos de log nos e-mails. Alguma idéia?

BTW, esse script Perl é chamado como um alerta de e-mail do script de shell BASH, portanto, se houver algum método para passar arquivos para o script perl, / usr / bin / perl $ DIR / emailAlert.pl file1.log file2.log serviria ao propósito. Por favor, informe, obrigado.

#!/usr/bin/perl -w

use MIME::Lite;

$msg = MIME::Lite->new( 
    From => 'sender\@example.com', 
    To => 'recipient\@example.com', 
    Subject => 'subject here', 
    Type => 'multipart/mixed'
); 

$msg->attach(
    Type    => "text/plain",
    Path    => $tmpMsg,
    Filename    => $tmpMsg,
    Disposition => "attachment"
);

$msg->send('smtp', 'mailserver.example.com', Timeout => 60);
    
por Andrew 30.03.2012 / 10:06

1 resposta

2

Você pode usar argumentos em instruções como $log1 = $ARGV[0] e $log2 = $ARGV[1] e atribuí-los à sua seção $msg->attach . Você pode usá-lo assim:

    while (@ARGV) {  
        $msg->attach(  
            'Type' => 'text/plain',  
            'Path' => shift @ARGV
        );  
    }
    
por 30.03.2012 / 10:16