"
#!/bin/bash MONTH=$(LANG=C date +%b) TODAY=$(date +%d) TODAY_SEND_CHECK=$(cat /var/log/maillog | grep authid | grep -E ""$MONTH|$TODAY"" | wc -l) DB_USER='sendmail' DB_PASSWORD='sendmail_pw' DB_NAME='sendmail' if [ ""${TODAY_SEND_CHECK}"" -eq 0 ] then echo ""발송된 메일이 없습니다"" else cat /var/log/maillog | grep authid | grep -E ""$MONTH|$TODAY"" | awk '{ print $3,$8,$7 }' | awk -F[\=\ ] '{ print $1, $3, $5 }' | tr -d '[],' | awk '{ print $1,"","",$2,"","",$3 }' | tr -d "" "" > /tmp/sendmail_check.tmp IFS=, while read time account ip do echo ""INSERT INTO sendmail (time,account,ip) VALUES ('$time', '$account', '$ip');"" done < /tmp/sendmail_check.tmp | mysql -u${DB_USER} -p${DB_PASSWORD} ${DB_NAME}; rm -f /tmp/sendmail_check.tmp fi
대충 만든 거라 구동 되는 것만 확인함. 하루에 1번(23시 59분) cron 돌릴 용도로 만듦. 아래는 테이블 구조.
+---------+-------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| date | date | NO | | current_timestamp() | |
| time | time | NO | | NULL | |
| account | varchar(20) | NO | | NULL | |
| ip | varchar(15) | NO | | NULL | |
+---------+-------------+------+-----+---------------------+----------------+
5 rows in set (0.006 sec)
"