Verifica quais ports necessitam de atualização

Publicado por Eduardo Mendes 01/09/2006

[ Hits: 12.257 ]

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

Gerenciamento de espaço em disco

Script para criação de usuarios.

Firewall iptables

Instalação do Cacti v0.8.7g + Plugins

Script para Newsletters


  

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