Atualização do FreeBSD

Publicado por Perfil removido (última atualização em 24/04/2010)

[ Hits: 7.445 ]

Download dgfupdate.sh




Este script foi desenvolvido para facilitar a atualização do FreeBSD, mesmo quem não tem muito conhecimento consegue atualizar o sistema de uma forma simples e completa, ainda mostra os programas que precisam ser atualizados e é possível atualizar determinado programa ou todos sem complicação.

Também é possível usar alguns parâmetros "não obrigatórios":

-i - para você interagir com o script;
-v - para visualizar o a execução do script com mais detalhes;
numero - o número seria o tempo para começar a fazer a atualização, pode ser usada na inicialização do FreeBSD e colocar para inicializar a atualização depois de 30 segundos.

Modo de uso:

./dgfupdate.sh -i -v 10

  



Esconder código-fonte

#!/usr/local/bin/bash
# -----------------------------------------------------------------------
# - Feito por: Douglas Giorgio Fim               -
# - E-mail: douglasfim@yahoo.com.br                  -
# - MSN: dgf_skt@hotmail.com                  -
# - Programa: dgfupdate                     -
# - Versao: 1.0                        -
# -                           -
# - Este script pode ser alterado e distribuido por qualquer pessoa,   -
# - desde que este quadro se mantenha inalterado!         -
# -                            -
# - Obs.: Este script foi desenvolvido para facilitar a atualização do FreeBSD   -
# -----------------------------------------------------------------------

numero=
numero2="$numero"
verbose=

FIM() {
echo "Fim da atualização."
echo -n 'Aperte <Enter> para sair: '; read nada
exit 1
}

if [ -n "$1" ]; then
   if [ "$1" = '-v' ]; then
      verbose=1
   elif [ "$1" = '-i' ]; then
      atualizacao=
   else
      sleep $1
   fi
fi
if [ -n "$2" ]; then
   if [ "$2" = '-v' ]; then
      verbose=1
   elif [ "$2" = '-i' ]; then
      atualizacao=
   else
      sleep $2
   fi
fi
if [ -n "$3" ]; then
   if [ "$3" = '-v' ]; then
      verbose=1
   elif [ "$3" = '-i' ]; then
      atualizacao=
   else
      sleep $3
   fi
fi



echo "Atualizando as ports: "
if [ "$verbose" = '1' ]; then
   portsnap fetch update
   echo ''
else
   portsnap fetch update > /dev/null
fi

echo "Verificando as versões: "
verificacao=`portversion -v | grep -w '<' | awk '{print $1}' | sed -e 's/\(.*\)-\(.*\)/\1/;s/[ ]//g' | awk  'NF>0' | nl`

while [ "$resultado" != 'c' ]; do
if [ "$verificacao" != '' ]; then
   echo "$verificacao"
   while [ "$numero" = '' ]; do
      echo -n 'Digite o(s) numero(s) do(s) programa(s) que deseja atualizar, 0 para todos ou "c" para cancelar: ' ; if [ -z "$numero" ]; then read numero; fi
   done
   verificacao2=`echo "$verificacao" | grep -w "$numero" | awk '{print $2}'`
   escolha=`echo "$numero" | grep -w '0' | sed 's/[ ]//g'`
   escolha2=`echo "$numero" | grep -w [cC] | sed 's/[ ]//g' | tr '[:upper:]' '[:lower:]'`
   
   if [ "$escolha" = '0' ]; then
      if [ "$escolha2" = 'c' ]; then
         echo "Parametro invalido."
         exit 1
      else
         resultado='0'
      fi
   elif [ "$escolha2" = 'c' ]; then
      resultado='c'
   fi
   
   case $resultado in
   0)
      echo -n "0 para atualização simples, 1 para atualização avançada: "; if [ -z "$nivel" ]; then read nivel; fi
      if [ -z "$nivel" ]; then
        nivel=0
      fi
      if [ "$nivel" = '0' ]; then
        for i in `echo "$verificacao" | awk '{print $2}'`; do
           echo "atualizando $i"
           portupgrade -PRDuk $i
        done
      elif [ "$nivel" = '1' ]; then
        echo "Atualizando..."
        portupgrade -PRDuka
      fi
      echo "Atualização completada"
      FIM ;;
   c)
      echo "Atualização cancelada."
      exit 1 ;;
   *)
      for i in `echo "$verificacao2"`; do
         echo "atualizando $i"
         portupgrade -PRDuk $i
      done
      verificacao=`portversion -v | grep -w '<' | awk '{print $1}' | sed -e 's/\(.*\)-\(.*\)/\1/;s/[ ]//g' | awk  'NF>0' | nl`
      ;;
   esac
else
   echo "Seu sistema ja está atualizado."
   resultado='c'
fi
numero=
done

FIM

Scripts recomendados

SSH manager

Linux Active Directory

conssh.sh - Frontend para SSH via proxy HTTP

Repositório Local usando Yum

Calcular sub-rede, listar e salvar MACs e IPs da rede local


  

Comentários
[1] Comentário enviado por irado em 25/04/2010 - 11:56h

oi, douglas.

notei que NÃO É atualização completa do sistema, mas apenas atualização do ports, que é UMA das etapas apenas. Mas já está de bom tamanho :)

flames > /dev/null

[2] Comentário enviado por albertguedes em 25/04/2010 - 15:45h

E Viva o FreeBSD !

[3] Comentário enviado por alaxricard em 26/04/2010 - 12:56h

Amigo o FreeBSD ele naum tem em português e por enquantos eu só estou ultilizando os Linux em português pra pegar a pratica.

[4] Comentário enviado por removido em 23/08/2010 - 12:00h

na verdade ele só atualiza as ports, o FreeBSD em si não, por enquanto não, ja criei uma nova atualização, tive que refazer quase tudo e ainda não terminei, vou colocar a opção de atualizar o sistema por completo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts