Bash
Perl sendmail 附加日誌文件匹配日期格式
我想發送匹配日期格式的日誌文件,例如 YYYY-MM-DD-*.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 shell 腳本的電子郵件警報,所以如果有任何方法可以將文件傳遞給 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 ); }