自分メモ。
- Linuxコンピュータ上のメールアカウントを一つ、バックアップ専用にする。
- メール転送(
.forward)を次のように設定。"| cat >> mail_`date +%Y%m%d%H%M%S`_$$.txt" - バックアップ用ftpサーバへメールを送るPerlスクリプトを次のように作成。ファイル名は例えば
savemail.plとでも。
#!/usr/bin/perl
$ftphost = "バックアップ用コンピュータのホスト名";
($username, $password) = ("ログインアカウント", "パスワード");
$ftpdir = "ファイルを入れるディレクトリのパス名";
($sec,$min,$hour,$mday,$mon,$year,undef,undef,undef) = localtime(time);
$filepre = sprintf("%04d%02d%02d%02d%02d%02d_%d_", 1900+$year, $mon, $mday, $hour, $min, $sec, $$);
use Net::FTP;
$ftp = Net::FTP->new($ftphost);
$ftp->login($username, $password);
$ftp->binary;
$ftp->cwd($ftpdir);
$n = 0;
open(FILELIST, "find -maxdepth 1 -name 'mail_*.txt' -print |") || die;
while ($srcfile = <FILELIST>) {
chomp $srcfile;
$dstfile = $filepre . ++$n . ".eml";
if ($ftp->put($srcfile, $dstfile)) {
unlink $srcfile;
print "saved: $srcfile as $dstfile¥n";
}
else {
print "not saved: $srcfile¥n";
}
}
close(FILELIST);
$ftp->quit;
exit 0;
- 作ったPerlスクリプトを定期的に実行する為に下記を crontab に食べさせる。
1-59/15 * * * * /usr/bin/perl $HOME/savemail.pl >> $HOME/savemail.log - 保存されたファイルは
.emlですが、とりあえずファイルをダブルクリックするとOutlook Expressで読めることだけ確認済み。でもOutlook Expressのウィンドウで削除ボタンを押すと、ファイルがゴミ箱へ移されてしまいます :-p
おしまい。
コメントを残す