アクセラと+αな生活
アクセラとα350と共に過ごす気まぐれ日記です。
Firefox ブラウザ無料ダウンロード
2017年11月
≪10月  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30    12月≫
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Avast 続きで。。。

お次は、スキャンをシェル化します。
こちらもシェル化しておけば、自動実行もできますからね。


こちらも、実行結果をログに残すようにしておきます。

で、作成したシェルは以下のようになりました。


#! /bin/sh
#####################################################
# Avastファイルスキャンシェル
#
#####################################################

# スキャン対象のディレクトリ
scan_dir=' <スキャンするディレクトリを指定>'

log_dir=/var/log/
log_name=avast.log
log_file=$log_dir$log_name
log_temp=$log_dir'avast_temp_log'
avast_command='/usr/bin/avast -t A '$scan_dir

# ログ出力開始
echo '['`date +'%Y/%m/%d %T %Z'`']' `hostname` $avast_command':START' >> $log_file

# スキャンの実行
$avast_command >> $log_temp 2>&1
return_code=$?

grep -v '[OK]' $log_temp >> $log_file

# 一時ログファイルの削除
rm $log_temp

echo '['`date +'%Y/%m/%d %T %Z'`']' `hostname` $avast_command':END (RETURN CODE:'$return_code')' >> $log_file

exit $return_code


で、このシェルを実行すると、以下のログを残してくれます。

[yyyy/mm/dd hh:mm:ss JST] <ホスト名> /usr/bin/avast -t A <スキャンディレクトリ>:START
#
# Statistics:
#
# scanned files: 2590
# scanned directories: 912
# infected files: 0
# total file size: 435.3 MB
# virus database: 091130-0 30.11.2009
# test elapsed: 6s 861ms
#
[yyyy/mm/dd hh:mm:ss JST] <ホスト名> /usr/bin/avast -t A <スキャンディレクトリ>:END (RETURN CODE:0)


まあ、これくらいの出力で十分かなww

実行時の標準出力、標準エラー出力を一時ログファイルに出力し、一時ログファイルから、「grep -v '[OK]'」で「[OK]」の文字列がない行をログに出力してます。

スキャンして正常なファイルには「[OK]」が出てくるので、ウィルスに感染したファイル、エラーなどが合った場合、ファイル名がログに残ります。
スキャンして正常なファイルはログに残しても邪魔なので不要だけど、何かのエラーがあった場合はログに対象のファイル名が残るので、後で調査するときに役に立つでしょう。


最後のサマリー(Statistics)も「[OK]」が含まれないため、ログに残ります。
スキャンした結果として、ファイル数や時間などの記録が残るので、統計情報として残しておきたかっただけですけどね。




後は、自動実行できるように、cron でスケジュールすれば使えるかもww

機能を追加するなら、このシェル実行時の引数で、スキャンするディレクトリを指定できるようにするとか、ウィルスが発見された場合、メールを飛ばすかなど、いろいろできますね。
(面倒なので、そこまでしていないけど。。。)

※ Avast のウィルスパターンデータは各ユーザのホームの「.avast」ディレクトリに保存されるようです。
 ウィルスパターンデータの更新とスキャンは同一ユーザで行わないと、古いパターンデータでスキャンしてしまう可能性があります。
 このあたりは、注意が必要です。
 
 このシェルは「root」で実行することを前提としてますので、ログ出力先を「/var/log」としています。
 一般ユーザでは「/var/log」に書き込み権限がない可能性がありますので、一般ユーザで実行する場合はログの出力先を変更して下さい。



コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by .
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。