を使ってsnortのログをメールに飛ばすことはできるのですが、cronで設定しても動かないです。
手動でシェルを動かすとOKです。なぜでしょうか。ご教示お願いします。
あと、とばしたメールにsubjectも入れたいです。
環境はSolaris8+snort-2.1.3です。
# crontab -l
3 * * * * /usr/local/etc/alert-sh > /dev/null 2>&1
#ls -l alert-sh
-rwxr--r-- 1 root other 453 Apr 13 11:15 alert-sh
#!/bin/bash
alertdir=/var/log/snort
alertfile=alert_1
savefile=alert_mail
cd ”$alertdir”
if [ -f $alertfile ] ; then
sabun=`diff alert $alertfile|sed -e ’s/<//’|sed -e ’1d’|sed -e ’s/^ //’|grep -c ””`
if [ $sabun -ne 0 ] ; then
diff alert $alertfile|sed -e ’s/<//’|sed -e ’1d’|sed -e ’s/^ //’>$savefile
cat $savefile|mail -s snort-alert root@**.**.***
cp -f alert $alertfile
rm -fr $savefile
else
echo ”not change”
fi
else
cp -f alert $alertfile
fi
cronはログインをしないので、環境変数の初期化のようなことがなされません。
PATH=/usr/sbin; export PATH;
など、シェルを動かすための環境変数を設定する必要があります。
subjectの件、答え忘れました。
mail -s 件名 宛先 です。
cat $savefile|mail -s suject snort-alert root@**.**.***
でいけるかと思われます。
ありがとうございます。
追記してみました。
これで様子をみてみます。
crontab -eに書いてもエラーになりましたので、
スクリプトに追加してみました。(確認中)