概要
Sophosは、通常であれば、数時間おきに自動的にパターンファイルを取得してくるように設定できる。
しかし、自動取得とした場合、取得してきたバージョンによっては、それによって、不具合が発生してしまう場合がある。また、大きなパターンファイルがあった場合は、サーバに負荷をかけてしまう。そのため、可能であれば、手動でのパターンファイルのアップデートを推奨し、そのスクリプトを記載する。
環境
RHEL 5.6、 RHEL6.1
スクリプトを深夜などサービスが止まっている時間に実行されるよう、cronに登録する。
スクリプト
sav-update.sh
#!/bin/bash
#
# sav-update.sh ver.1.0.0
#
# Author :
# hogehoge hogehoge
#
# Usage sav-update.sh
#
# Description
# Virus Pattern Files update.
#
# Caution
#
################################################################
# Variable
HOME=/root/Tools
DATE=date '+%Y%m%d %H:%M:%S'`
LOG=${HOME}/log/savupdate.`hostname`.log
### LOTATION
if [ -e $LOG }; then
:
else
touch $LOG
fi
while [ $i -gt 1 ]
do
if [ -e $LOG.`expr $i -1` ]; then
mv $LOG.`expr $i - 1` $LOG.$i 2>&1 1>/dev/null
fi
i=`expr $i -1`
done
if [ -e $LOG ]; then
mv $LOG $LOG.1 2>&1 1>/dev/null
fi
### Start Date
echo "------------------ Virus Pattern Files updates START ${DATE} ------------------" >> ${LOG}
### Virus Pattern Files updates
export SAVUPDATE_IS_INTERACTIVE=1
/opt/sophos-av/bin/savupdate -v5 >> ${LOG}
if [ $? -eq 0 ]; then
:
else
echo "${DATE} Virus Pattern Files UPDATE FAILED" >> ${LOG}
fi
### END Date
echo "------------------ Virus Pattern Files updates END ${DATE} ------------------" >> ${LOG}
cronへの登録
crontab -eで登録。
ログ出力例
ここでは記載しない。スクリプト内に記載されたものだけでなく、savupdateコマンドで出力されたログも記載される。
日次でローテーションする設定も入るため、ログには、1回分のアップデートのみが記載される。