O texto abaixo foi publicado no BR-Linux antes de 2005, e está mantido aqui por razões históricas.
Veja o material atualizado diariamente do BR-Linux em http://br-linux.org
Atualização automática para arquivos do uvscan
Publicado em 31 de julho de 2003
O texto abaixo contém um script shell para atualização automática da tabela de vírus do uvscan (o antivírus da McAfee/NAI). Eu mantenho este antivírus (que é um software comercial) instalado em uma série de servidores (de e-mail e de arquivos) Linux, para limpar os arquivos que os usuários de Windows lá armazenam, e para impedir que eles recebam e-mails infectados. Ativando este script para execução automática de hora em hora eu me preocupo menos com a possibilidade de deixar meus usuários desprevenidos contra algum vírus novo ;-) Eu obtive este script em um arquivo antigo de lista de discussão, com o nome de auto_update_uvscan. Mas ele não era atualizado desde 2001, e continha alguns erros de sintaxe (além de apontar para URLs não mais existentes no site da NAI). Aparentemente o autor do original foi o Jorge Becerra (jorgeATsodatec.org), mas a versão que eu recebi estava bastante alterada (e sem assinaturas), e eu tive que alterar mais um pouco para fazer funcionar. Este script tem uma vantagem sobre alguns outros que eu já vi anteriormente, porque ele usa o lynx para fazer o acesso ao site FTP da NAI. Ao contrário de vários outros clientes FTP, o lynx suporta o uso de proxies http (como o squid) para acesso a servidores de ftp, assim você pode usar este script mesmo se sua rede for isolada. Outra alternativa para esta mesma finalidade seria o wget. O script está completo a seguir - basta copiar e colar, gravar em um arquivo como "/usr/local/bin/auto-update-uvscan" e torná-lo executável com o comando "chmod a+rx /usr/local/bin/auto-update-uvscan". Para configurar a execução automática em horários pré-determinados, consulte a nossa dica sobre o cron. O script
#!/bin/bash
# dat_update
# Original por Jorge Becerra jorgeATsodatec.org
#
# Recebido em versão alterada, e alterado mais um pouco por:
# Augusto Campos (brain@br-linux.org) 07/2003
#
# Comentário do autor original:
# Feel free to use the script and distribute
# if you found any mistake, please email the author
#
# A versão atual funciona para mim, mas se alguém acrescentar
# características, ou limpar o código, favor me mandar uma cópia.
#
# proxy - descomente para configurar, se você precisar
#http_proxy="http://proxy.foo.br:3128/"
#ftp_proxy="http://proxy.foo.br:3128/"
# Where to get the nai update from
FTPDIR="ftp://ftp.nai.com/pub/datfiles/english/"
MAILTO="root"
# Location of uvscan files
UVSCANDIR="/usr/local/uvscan"
UVSCAN="$UVSCANDIR/uvscan"
# Location of files (check on your distribution)
LYNX="/usr/bin/lynx"
GREP="/bin/grep"
CUT="/usr/bin/cut"
WGET="/usr/bin/wget"
CP="/bin/cp"
RM="/bin/rm"
ECHO="/bin/echo"
MKDIR="/bin/mkdir"
CAT="/bin/cat"
TAR="/bin/tar"
MAIL="/bin/mail"
#
# You don't need to change from here
# At least if you don' know exactly what means :-)
#
if [ ! -x $UVSCAN ] ; then
$ECHO "uvscan not installed on: $UVSCAN"
exit
fi
if [ ! -x $LYNX ] ; then
$ECHO "lynx not installed on $LYNX "
exit
fi
cd $UVSCANDIR
if [ ! -d tmp ]; then
$MKDIR tmp
fi
cd tmp
# Get the page from nai
echo "Retrieving update list"
$LYNX -dump "$FTPDIR" > nai.ls
echo "Done"
# Extract filename of last version
$CAT nai.ls | $GREP 'ftp://ftp.nai.com' nai.ls | $GREP .tar | $CUT -c 7- | head -1 >nai.fn
# Get current version
VERSION_CURRENT=`cut -d - -f 2 nai.fn | cut -d . -f 1`
if [ -z "$VERSION_CURRENT" ] ; then
$ECHO "cant get uvscan current version"
exit
fi
# Get version installed
VERSION_USED=`$UVSCAN --version | $GREP "Virus data file" | $CUT -d" " -f4 | $CUT -c2-`
$ECHO "Version - current : $VERSION_CURRENT"
$ECHO "Version - used : $VERSION_USED"
if [ -z "$VERSION_USED" ] ; then
$ECHO "could not get version from $UVSCAN"
exit
fi
if [ "$VERSION_USED" -ge "$VERSION_CURRENT" ] ; then
$ECHO "Viruscan is up to date"
exit
fi
$ECHO "Viruscan needs to be updated"
DATNAME="dat-${VERSION_CURRENT}.tar"
echo "downloading $FTPDIR$DATNAME - please wait"
$WGET -c -o wupdate.log $FTPDIR$DATNAME
if [ $? -eq 0 ]; then
echo "downloaded ok"
if [ ! -d extract ] ; then
$MKDIR extract
fi
$RM -f extract/*
$TAR --extract --directory extract < $DATNAME
if [ ! $? -eq 0 ]; then
$ECHO "ERROR extracting"
exit
fi
$RM -f extract/*.exe
$CP -f extract/* $UVSCANDIR/
$RM -f extract/*
$MAIL -s "uvscan dat updated to version: ${VERSION_CURRENT}" $MAILTO < wupdate.log
else
$ECHO "error downloading"
fi
$RM -f wupdate.log
Postado por brain em julho 31, 2003 11:25 AM
Comentários para "Atualização automática para arquivos do uvscan"
» Postado por: todorov em julho 31, 2003 05:10 PM, 200.158.64.:
» Postado por: todorov em julho 31, 2003 05:11 PM, 200.158.64.:
» Postado por: Guaracy Tesch Junior em setembro 18, 2003 01:54 PM, 200.102.210:
» Postado por: Domingos Paraiso em outubro 16, 2003 02:08 PM, 200.165.8.6:
» Postado por: Raul em novembro 9, 2003 11:07 PM, 200.154.72.:
» Postado por: Zithromax Online em setembro 24, 2004 06:23 AM, 65.75.139.9:
Antes de comentar...
- Preserve a qualidade desta discussão - Leia os Termos de Uso. - Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum. - Mantenha o foco nos argumentos e no assunto - Não faça ataques pessoais. - Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro - Não seja um e-mala ;-) ![]() Envie seu comentário
|