Pular para o conteúdo

Verifica quais ports necessitam de atualização

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.
Eduardo Mendes those
Hits: 12.773 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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.
Download check_updates.sh Enviar nova versão

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

ajuste horário

Claro 3g Sony Ericsson md300 script conexao REVISAO 2

rc.firewall avançado

Script de compilação automática do GCC-5.3.0 para Debian/Ubuntu de 32 bits

Automatizando com Script-Expect

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.