Назад | Перейти на главную страницу

Perl sendmail присоединяет файлы журнала, соответствующие формату даты

Я хочу отправлять файлы журнала, соответствующие формату даты, например ГГГГ-ММ-ДД - *. Log как вложения в Perl-скрипте. В BASH это легко сделать:

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

По какой-то причине мне нужно сделать это в Perl-скрипте. Основная часть Perl-скрипта выглядит так, как показано ниже, я хочу добавлять файлы журнала в электронные письма. Любая идея?

Кстати, этот сценарий Perl вызывается как оповещение по электронной почте из сценария оболочки BASH, поэтому, если есть какой-либо метод для передачи файлов в сценарий perl, например / usr / bin / perl $ DIR / emailAlert.pl file1.log file2.log послужит цели. Пожалуйста, посоветуйте, спасибо.

#!/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);

Вы можете использовать аргументы в таких утверждениях, как $log1 = $ARGV[0] и $log2 = $ARGV[1] и назначьте их в своем $msg->attach раздел. Вы можете использовать это так:

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