前回は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