Я хочу отправлять файлы журнала, соответствующие формату даты, например ГГГГ-ММ-ДД - *. 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
);
}