前回はClamAVのインストールと基本設定まで説明しましたが、今回は下記内容を実現したいと思います。
・自動定期アップデート
・自動定期スキャン
・スキャナ後の結果をメールで通知する
↑これらのことを全部一つのバッチで実現しましょう
それではバッチを作りましょうw
vim /root/clamscan.sh
バッチ↓
#!/bin/bash
PATH=/usr/bin:/bin
CLAMSCANTMP=/tmp/clamscan.log
rm -f $CLAMSCANTMP
# clamd更新
yum -y update clamd > /dev/null 2>&1
# 除外リスト
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep \/$) ]; then
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=$i"
else
excludeopt="${excludeopt} --exclude=$i"
fi
done
fi
echo ${excludeopt}
# ウィルス定義ファイル更新
freshclam > /dev/null
# ウィルススキャン
clamscan --recursive / --infected --remove --move=/tmp/clamscan_removed --log=$CLAMSCANTMP ${excludeopt}
# 結果メール通知
cat $CLAMSCANTMP | mail -s "Scan results `hostname`" clamscan@engineer-log.net除外リストを作りましょう。
vim /root/clamscan.exclude
/etc/ #パスの場合 /root/test.txt #ファイルの場合
各オプションの説明
| –recursive | サブディレクトリごと再帰的に検査。圧縮ファイルは再帰的に解凍して検査 |
| –infected | ウイルスに感染したファイルのみを出力 |
| –remove | ウイルスに感染したファイルを削除する |
| –move | ウイルスに感染したファイルをDIRECTORYへ移動する |
| –log | FILEにログを記録する |
| –exclude | パターンにマッチするファイルを検査しない |
詳細のオプション設定を確認したい方はこちらへ
最後にcronで定期実行を設定しましょう!
crontab -e
毎日2時にrootユーザーでバッチを実行する
* 2 * * * root /root/clamscan.sh
そして、実際に送れてくるメールがこちらです
------------------------------------------------------------------------------- ----------- SCAN SUMMARY ----------- Known viruses: 4297364 Engine version: 0.99 Scanned directories: 102 Scanned files: 334 Infected files: 0 Data scanned: 202.58 MB Data read: 128.52 MB (ratio 1.58:1) Time: 53.315 sec (0 m 53 s)
以上です。
それでは、またねw