The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Автоматизация обновления антивируса..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Автоматизация обновления антивируса..."  
Сообщение от auto_tips (??) on 13-Июл-06, 15:37 
Возможно поможет кому-то. Разместив в кроне, можно забыть о ручном обновлении,
скрипт проверит базы, при необходимости загрузит и соберет обновленную
версию и обновит демоны.

#!/bin/bash
#
# ClamAV auto update routine
#
# Define system variables
#
DESTPATH="/usr/src"
TOREPORT="root"
OK="Ok"
NO="Failed"
echo >> /var/log/`basename $0`.log
#
# Functions library: logger stores all the events in a log file,
# reporter emails error events to admin
#
function logger () {
    if [ "$1" != "n" ]; then
    DATA="$1"
    CMD=""
    else
    DATA=`date +"%b %d %H:%M:%S $2"`
    CMD="-ne"
    fi
    echo $CMD "$DATA" >> /var/log/`basename $0`.log
}
function reporter () {
    echo "Error $1 in `basename $0`" | mail -s "`basename $0` reporting error" $TOREPORT
    quit
}
#
# Check for presence of a link to internet, need to prevent dns errors reporting by syslogd
#
logger n "Check for link to clamav.net: "
IPADDR=`host clamav.net | grep address | cut -d " " -f 4`
if [ "$IPADDR" != "" ]; then
    #
    # Check availability of the node
    #
    PINGER=`ping -c 1 $IPADDR | grep received | cut -d " " -f 4`
    if [ $PINGER == 1 ]; then
    logger "$OK"
    else
    logger "$NO"
    reporter 1
    fi
else
    logger "$NO"
    reporter 2
fi
#
# Run database updater:
#
VERSION=`freshclam | grep "WARNING: Local" | cut -d " " -f 7`
#
# If warning message present, check for presence of tarball
#
if [ "$VERSION" != "" ]; then
    logger n "Checking presence of tarball: "
    if [ ! -e $DESTPATH/clamav-$VERSION.tar.gz ]; then
    logger "$NO"
    logger n "Fetching mirrors list: "
    #
    # No tarball found, start fetching subroutine
    # First of all, get the mirrors list
    #
    MIRROR=( $(wget -q http://prdownloads.sourceforge.net/clamav/clamav-$VERSION.tar.gz?download \
   -O /dev/stdout | grep "use_mirror" | cut -d "=" -f 3 | sed -r "s/<[^>]*>//g" | cut -d "\"" -f 1))
    if [ $? != 0 ]; then
        logger "$NO"
        reporter 3
    else
        logger "${#MIRROR[@]} nodes available"
    fi
    #
    # To prevent overloading of the first node in a mirrors list, select random from the list
    #
    NODE=$RANDOM
    let "NODE %= ${#MIRROR[@]}"
    logger n "Downloading v$VERSION from ${MIRROR[$NODE]} ($NODE): "
    wget -q -c -t 5 http://${MIRROR[$NODE]}.dl.sourceforge.net/sourceforge/clamav/clamav-$VERSION.tar.gz \
-O $DESTPATH/clamav-$VERSION.tar.gz >/dev/null 2>&1
    if [ $? != 0 ]; then
        logger "$NO"
        reporter 4
    else
        logger "$OK"
    fi
    else
    logger "$OK"
    fi
    #
    # Now tarball must be present, and we have to check it's condition
    #
    logger n "Checking tarball condition: "
    gzip -l $DESTPATH/clamav-$VERSION.tar.gz > /dev/null 2>&1
    if [ $? != 0 ]; then
    logger "$NO"
    #
    # If we got an error message in checking of a tarball,
    # erase it, and next time try to download fresh one
    #
    rm -f $DESTPATH/clamav-$VERSION.tar.gz
    reporter 5
    else
    logger "$OK"
    cd $DESTPATH/
    logger n "Unpacking: "
    #
    # Ok, gzip reported that's tarball is ok, now unpacking it
    #
    tar -xzf clamav-$VERSION.tar.gz >/dev/null 2>&1
    if [ $? != 0 ]; then
        logger "$NO"
        reporter 6
    else
        logger "$OK"
    fi
    logger n "Configuring: "
    cd $DESTPATH/clamav-$VERSION
    #
    # Below are standard procedures of configuring, assembling and installing of the package
    #
    ./configure > /dev/null 2>&1
    if [ $? != 0 ]; then
        logger "$NO"
        reporter 7
    else
        logger "$OK"
    fi
    logger n "Compiling: "
    make > /dev/null
    if [ $? != 0 ]; then
        logger "$NO"
        reporter 8
    else
        logger "$OK"
    fi
    logger n "Installing: "
    make install > /dev/null 2>&1
    if [ $? != 0 ]; then
        logger "$NO"
        reporter 9
    else
        logger "$OK"
    fi
    logger n "Check old daemon: "
    #
    # Now we have to swap old smtpd daemon to new
    # If old daemon is preset - kill'em
    #
    PID=`ps -eo pid,comm | grep clamd | sed -r "s/^\ //" | cut -d " " -f 1`
    if [ "$PID" != "" ]; then
        logger "$OK"
        logger n "Killing old daemon ($PID): "
        kill -9 $PID
        if [ $? != 0 ]; then
        logger "$NO"
        reporter 10
        else
        logger "$OK"
        fi
    else
        logger "$NO"
    fi
    logger n "Starting new daemon: "
    #
    # Now memory is clear from old daemon and we're running the new one
    #
    /usr/local/sbin/clamd & > /dev/null 2>&1
    if [ $? != 0 ]; then
        logger "$NO"
        reporter 11
    else
        logger "$OK"
    fi
    #
    # Arter all of these, we have to run database updater again
    #
    logger n "Checking for newer database: "
    freshclam > /dev/null 2>&1
    if [ $? != 1 ]; then
        logger "$NO"
        reporter 12
    else
        logger "$OK"
    fi
    #
    # At this stage, we have new antivirus installed, databases are up to date
    # and ready to protect our system
    #
    fi
else
    logger n "ClamAV is up to date"
    logger ""
fi
#
# I did not find any benefits to run freshclam in a daemon mode using switch -d.
# Running once for a 4, 6 or whatever hours, it takes system resources for 24 hours, 7 days
# I think better is to use this script and run it with cron daemon (crontab) as a foreground process
# within the same time range
#
# Dima.

URL:
Обсуждается: http://www.opennet.dev/tips/info/1057.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Автоматизация обновления антивируса ClamAV"  
Сообщение от imago email(??) on 13-Июл-06, 15:37 
а вся эта красота под какую систему?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Аноним on 18-Июл-06, 10:35 
>а вся эта красота под какую систему?

Работает на FC4, Slackware, SuSE 10.1

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Praporshik on 13-Июл-06, 15:53 
Исходя из #!/bin/bash - под линух.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Автоматизация обновления антивируса ClamAV"  
Сообщение от мунеймиз on 13-Июл-06, 15:57 
Все это конечно хорошо, но что делать со сторонними патчами молюска? Автоапдейт демона так просто не проведешь :((
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Аноним on 18-Июл-06, 10:37 
>Все это конечно хорошо, но что делать со сторонними патчами молюска? Автоапдейт
>демона так просто не проведешь :((


у меня работает как есть, думаю что патчи при желании  не составит труда вписать в скрипт

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

16. "Автоматизация обновления антивируса ClamAV"  
Сообщение от mynameis on 25-Июл-06, 12:42 
Patch'i mogut ne podoiti pod novuyu versiyu ;(
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Abigor email(??) on 14-Июл-06, 06:30 
порты рулят!!! portupgrade -rcvf clamd
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Автоматизация обновления антивируса ClamAV"  
Сообщение от SubGun email(??) on 18-Июл-06, 10:21 
Я может чего-то не понимаю, но зачем скрипт, если ecть freshclam?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Аноним on 18-Июл-06, 10:34 
freshclam тебе не выкачает и не соберет пакет сам, верно?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Автоматизация обновления антивируса ClamAV"  
Сообщение от SubGun email(??) on 18-Июл-06, 10:35 
Ясно. Я просто увидел "обновит базы", но не обратил внимание, что и саму версию обновит.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Digger (??) on 19-Июл-06, 16:01 
Согласен с SubGun, название не корректное
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Аноним on 20-Июл-06, 04:17 
Предложи корректное название.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Автоматизация обновления антивируса ClamAV"  
Сообщение от vovan (??) on 21-Июл-06, 22:18 
Под BSD не работает.
bash-2.05b# ./clamav_update.sh
sed: illegal option -- r
usage: sed script [-Ean] [-i extension] [file ...]
       sed [-an] [-i extension] [-e script] ... [-f script_file] ... [file ...]
./clamav_update.sh: line 78: let: NODE %= 0: division by 0 (error token is "0")
./clamav_update.sh: line 28: quit: command not found
./clamav_update.sh: line 28: quit: command not found

Не подскажете как это будет выглядеть на BSD?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Samm email on 22-Июл-06, 13:33 
portupgrade -R clamav :)

в /usr/local/etc/pkgtools.conf вписать желаемые опции и команду рестарта после установки. Всё :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Автоматизация обновления антивируса ClamAV"  
Сообщение от vovan (??) on 24-Июл-06, 11:32 
Спасибо. Так работает. И никаких скриптов ;)
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Аноним on 25-Июл-06, 03:05 
Caveat: если чуваки случайно зарелизят кривой билд, вы автоматически поимеете те же проблемы что и юзеры от кривых патчей виндовсапдейта :)
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

17. "Автоматизация обновления антивируса ClamAV"  
Сообщение от vovan (??) on 13-Авг-06, 07:00 
Чуваки, в отлличии от windows update не делают кривых релизов.
А от ошибок не застрахован никто.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

18. "Автоматизация обновления антивируса ClamAV"  
Сообщение от scream email(ok) on 13-Окт-06, 11:34 
Таки прям не делают?! Ошибаются все. Просто не все ошибки замечают.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

19. "Раздел полезных советов: Автоматизация обновления антивируса..."  
Сообщение от valmont2k on 14-Фев-07, 12:53 
Скрипт замечательный, но не работает, полагаю дело в строчке
" MIRROR=( $(wget -q http://prdownloads.sourceforge.net/clamav/clamav-$VERSION.tar.gz?download
-O /dev/stdout | grep "use_mirror" | cut -d "=" -f 3 | sed -r "s/<[^>]*>//g" | cut -d """ -f 1))"
поскольку линух у меня пишет в консоли русским и "grep "use_mirror"" бесполезен, а может все из-за версии wget
suse 10.0
clamav-autoupdate.log:
Feb 13 13:59:02 Check for link to clamav.net: Ok
Feb 13 13:59:14 Checking presence of tarball: Failed
Feb 13 13:59:14 Fetching mirrors list: 0 nodes available
Feb 13 13:59:30 Downloading v0.88.7 from (5767): Failed
Feb 13 13:59:30 Checking tarball condition: Failed
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

20. "Автоматизация обновления антивируса ClamAV"  
Сообщение от FoX email(??) on 25-Сен-07, 14:58 
Такая же петрушка
./clam: line 78: let: NODE %= 0: division by 0 (error token is "0")
./clam: line 28: quit: command not found
./clam: line 28: quit: command not found

Сен 25 16:35:00 Check for link to clamav.net: Ok
Сен 25 16:35:01 Checking presence of tarball: Failed
Сен 25 16:35:01 Fetching mirrors list: 0 nodes available
Сен 25 16:37:48 Downloading v0.91.2 from  (18562): Failed
Сен 25 16:37:48 Checking tarball condition: Failed

ALT LINUX

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

21. "Автоматизация обновления антивируса ClamAV"  
Сообщение от Автор on 08-Апр-08, 12:45 
С тех пор sourceforge изменил страничку загрузки, так что эта штука уже не актуальна.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру