Verifica quais ports necessitam de atualização

Publicado por Eduardo Mendes 01/09/2006

[ Hits: 12.345 ]

Homepage: http://www.bsdmail.com

Download check_updates.sh




Script desenvolvido pelo Garga lá da FUG, muito prático mesmo, para aqueles que trabalham com FreeBSD ou dão manutenção em algum, ele atualiza toda a árvore do Ports automaticamente.

  



Esconder código-fonte

#!/bin/sh

##########################################################################
# check_updates.sh                                                       #
#                                                                        #
# Funcoes:                                                               #
#                                                                        #
# - Verifica quais ports necessitam de atualizacao, enviando um email    #
#   para o responsavel                                                   #
# - Usando o parametro '--cvsup' o script ira atualizar a arvore do      #
#   ports do FreeBSD (4.x ou 5.x) e atualiza o INDEX de modo incremental #
#   usando o software FreeBSD::Portindex                                 #
#                                                                        #
# Versao:  0.2                                                           #
#                                                                        #
# Autor:   Renato Botelho <garga at FreeBSD.org>                         #
#                                                                        #
# Licenca: Este script pode ser livremente alterado ou redistribuido     #
#          sem previa autorizacao do autor, desde que este cabecalho     #
#          seja mantido.                                                 #
##########################################################################

# Checa se os programas necessarios estao instalados
if [ ! -x /usr/local/bin/cvsup ]; then
  echo "cvsup NAO esta instalado,"
  echo "instale-o usando 'pkg_add -r cvsup-without-gui' antes de continuar"
  exit 1
fi

if [ ! -x /usr/local/bin/cache-update ]; then
  echo "cache-update NAO esta instalado,"
  echo "instale-o usando o ports 'sysutils/p5-FreeBSD-Portindex'"
  echo "Leia atentamente a documentacao, rode o cache-init antes de continuar"
  exit 1
fi

if [ ! -x /usr/local/sbin/portsdb ]; then
  echo "portsdb NAO esta instalado,"
  echo "instale-o usando o ports 'sysutils/portupgrade'"
  exit 1
fi

# Mail que ira receber os avisos de atualizacao
MAIL_TO=renato@`/bin/hostname`

# Diretorio temporario
TMPDIR=/var/tmp/ports

# arquivo de configuracao do cvsup para atualizar a arvore do ports
PORTS_SUPFILE=/usr/local/etc/cvsup/ports-supfile

# Verifica a versão do Free para calcular o nome do arquivo INDEX do ports
VERSAO=`/usr/bin/uname -v | /usr/bin/sed 's/^[^ ]* \([0-9]\).*$/\1/'`

if [ $VERSAO -le 4 ]; then
  INDEXFILE=INDEX
else
  INDEXFILE=INDEX-$VERSAO
fi

# Atualiza a arvore e gera o INDEX atualizado
if [ "$1" = "--cvsup" ]; then
  [ ! -d $TMPDIR ] && mkdir $TMPDIR

  if [ ! -e $PORTS_SUPFILE ]; then
    echo "Arquivo $PORTS_SUPFILE nao existe, impossivel executar o cvsup"
    exit 1
  fi

  if [ -x /usr/local/bin/fastest_cvsup ]; then
    CVSUP_SERVER=`/usr/local/bin/fastest_cvsup -Q -c tld`
  else
    CVSUP_SERVER="cvsup17.freebsd.org"
  fi

  if /usr/local/bin/cvsup -g -L2 -r 3 -h $CVSUP_SERVER $PORTS_SUPFILE >$TMPDIR/cvsup.out 2>&1; then
    /usr/local/bin/cache-update -i $TMPDIR/cvsup.out && \
    /usr/local/bin/portindex -o $TMPDIR/$INDEXFILE && \
    cp -vf $TMPDIR/$INDEXFILE /usr/ports/$INDEXFILE && \
    /usr/local/sbin/portsdb -u
  fi
fi

# Verifica os pacotes que necessitam de atualizacao
if [ -e /usr/local/sbin/portversion ]; then
  UPDATES=`/usr/local/sbin/portversion -v -L '=>'`
else
  UPDATES=`/usr/sbin/pkg_version -v -L '=>'`
fi

# Envia um mail para avisar quais os pacotes necessitam de atualizacao, se existir algum
if [ "$UPDATES" != "" ]; then
    echo "$UPDATES" | /usr/bin/mail -s "[PORTS] atualizacoes `/bin/hostname`" $MAIL_TO
fi

Scripts recomendados

mkzeowmp - zeo mount point para PZP (python, zope e plone)

SwapFile - swap dinâmico

Postfix - Listar usuários com over quota

Pequeno, simples mas interessante chat desenvolvido totalmente em shell script.

Script de backup para fita DAT


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts