2013年2月24日日曜日

expectでメールを送ってみる

こんな感じか?

#!/usr/bin/expect
set timeout 10
#spawn telnet localhost 587
spawn telnet localhost 25
expect "Debian"
send "HELO jitaku\n"
expect "250"
send "MAIL FROM: from@hoge.com\n"
expect "250"
send "RCPT TO: to@hoge.net\n"
expect "250"
send "DATA\n"
expect "354"
send "test mail!\n"
send ".\n"
expect "250"
send "QUIT\n"
interact
view raw mailtest hosted with ❤ by GitHub

2013年2月22日金曜日

Spamassassinとmaildropの設定

Debianでやった

以下のプログラムをインストール
spamassassin → デーモン spmad
spamc → spamdとやりとりするためのインターフェイス
maildrop → 配送プログラム

で、こんな感じで$HOMEにおいておけばいいみたい

~/.forward
"|/usr/bin/maildrop"
view raw forward hosted with ❤ by GitHub


~/.mailfilter
DEFAULT="$HOME/Maildir"
logfile "$HOME/maildrop.log"
import SENDER
xfilter "/usr/bin/spamc -f ${SENDER}"
if( /^X-Spam-Flag: YES/:h )
{
to "$DEFAULT/.Junk/"
}
view raw mailfilter hosted with ❤ by GitHub


あとはspam学習するためのcron設定
/etc/cron.daily/sa-learn
#!/bin/bash
sudo -u hogeuser bash -l -c "/usr/bin/sa-learn --ham '/home/hogeuser/Maildir/.Archives.2013/cur'"
sudo -u hogeuser bash -l -c "/usr/bin/sa-learn --spam '/home/hogeuser/Maildir/.Junk/cur'"
view raw cron_sa-learn hosted with ❤ by GitHub


以下のコマンドでシンタックスチェックもできるらしい
maildrop -V 9 < /dev/null

参考リンク
Spamassassin setup
maildrop 利用のメモというかtips
maildropのインストール

2013年2月10日日曜日

apacheのcombinedログのパース処理

こんな感じか?
#!/usr/bin/env ruby
# coding: utf-8
class ApacheEntry
attr_reader :raw, :ip_address, :server_address, :user,
:date, :request, :status, :size, :referer, :user_agent
attr_accessor :remote_host
def initialize(line)
@raw = line
line =~
/
^(\S+) #ip_address
\s
(\S+) #server_address
\s
(\S+) #user
\s
\[ (.*?) \] #date
\s+
" (.*?) " #request
\s+
(\S+) #status
\s+
(\S+) #size
\s+
" (.*?) " #referer
\s+
" (.*?) " #user_agent
/x
@ip_address = $1
@server_address = $2
@user = $3
d = $4
@request = URI.unescape($5)
@status = $6
@size = $7
@referer = $8
@user_agent = $9
d=d.sub(/\:/," ")
@date = Time.parse(d).strftime("%Y/%m/%d %H:%m")
@remote_host = @ip_address
end
end


やっぱり面倒だからLTSVにするか