Atualização automática do Slackware

Publicado por Perfil removido (última atualização em 22/12/2009)

[ Hits: 6.730 ]

Download dgfconf




Simplifique na hora de atualizar o seu Slackware, torne esta tarefa automática!

Testado em Slackware 13

Requerimentos:

- slackpkg já configurado
- dialog

  



Esconder código-fonte

#!/bin/bash

#verifica se o usuario logado é o root, caso nao seja ele sai do script
if [ ! `whoami` = "root" ]; then 
echo
echo
echo "########" "Você precisa do prefilegio root para atualizar" "########" 
echo
echo
sleep 1
exit 1
fi

clear

# FUNÇÔES

Manual() {

if [ -n "$zzz" ]; then

  if [ "$zzz" = aaa ];then
  
    dialog --title 'Erro' --msgbox "\nInsira um parametro valido" 0 0
    zzz=a
    Manual
    exit 1

  fi

fi

h=`echo -e "-h \t help 'manual'"`
r=`echo -e "-r \t remover os dados criados"`
rl=`echo -e "-rl \t remover os logs do slackpkg"`
i=`echo -e "-i \t instala programas"`

dialog --title 'Manual' --backtitle 'dgf' --msgbox "\n$h \n$r \n$rl \n$i"  0 0

}

#====================================================================================

# remove arquivos se desejar
Remover() {

texto=`echo -e "Deseja remover os arquivos criado pelo script?"`
dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

   case "$?" in #remove os arquivos criados se desejar

     0) 
        rm -rf $DIR
       dialog --title 'Aguarde' --infobox '\nArquivos removidos!' 0 0 ; sleep 1 ;;

     1) 
       exit 1 ;;

   esac

}

#=====================================================================================

Remover2() {

texto=`echo -e "Deseja remover os logs do slackpkg?"`
dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

      case "$?" in #remove os logs criados se desejar

        0) 
          rm -rf /var/lock/slackpkg.* 
          dialog --title 'Aguarde' --infobox '\nLogs removidos!' 0 0 ;;

        1) 
          exit 1 ;;

       esac

}

#=====================================================================================

# verifica se o slackpkg esta instalado ou baixa e instala se desejar
Atualiza() {

while [ "$s" = "$d" ] ; do
    
texto=`echo -e "Deseja baixar agora?"`
texto2=`echo -e "Instale o slackpkg para executar a atualização"`
dialog --msgbox "$texto2" 0 0 ; sleep 2
dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

    case $? in

      0) 
   dialog --title 'Atualização' --infobox '\nBaixando dependencias...' 0 0 
   wget -c "http://downloads.sourceforge.net/project/slackpkg/slackpkg/slackpkg-2.70.4/slackpkg-2.70.4-noarch-1.tgz?use_mirror=ufpr" 

   Atualiza1B() {
   texto=`echo -e "Deseja instalar agora?"`
   dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

   case "$?" in

     0) 
       dialog --title 'Instalação' --infobox 'Instalando...' 0 0
       installpkg slackpkg-*.tgz ;;

     1) 
       exit 1 ;;

   esac 

     }

     Atualiza1B ;;

      1) 
   exit 1 ;;

     esac 
   
done

}

#=====================================================================================

#verifica se o sistema esta atualizado e se o usuario quer instalar a(s) atualização(ões)
Atualiza2() {

   texto=`echo -e "Deseja atualizar seu sistema agora?"`
   dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

case "$?" in

  0) 
    dialog --title 'Aguarde' --infobox '\nAtualizando...!' 0 0
    slackpkg upgrade-all
    Remover


;;

  1) 
    Remover
  
;;  

  
esac
}

#=====================================================================================

Bloco1() {
slackpkg > $DIR/a

s=`grep "command not found" $DIR/a`
d="command not found"
}

#=====================================================================================

Bloco2() {
slackpkg check-updates > $DIR/aa

a=`grep "No news is good news" $DIR/aa` 
i="No news is good news"
}

#=====================================================================================

Diretorio() {
DIR=~/ATUALIZAÇÃO

if [ -e "$DIR" ]; then

dialog                                         \
   --title 'Aguarde'                           \
   --infobox '\nDiretorio verificado!'  \
   0 0

  else

    dialog --title 'Aguarde' --infobox '\nCriando diretorio!' 0 0 && mkdir "$DIR"

fi
}

#=====================================================================================

Atualiza() {
#verifica se o slackpkg esta atualizado, se nao estiver atualiza o slackpkg 
until [ "$a" = "$i" ] ; do

    slackpkg update 

    slackpkg check-updates > $DIR/aa 

    a=`grep "No news is good news" $DIR/aa` 
    
done
}

#=====================================================================================



#=====================================================================================



#=====================================================================================



#=====================================================================================



# FIM DAS FUNÇÔES

if [ -z "$1"  ]; then

  Diretorio

  Bloco1

  Atualiza

  Bloco2

  Atualiza

  Atualiza2
else

  if [ -z "$2" ]; then

    if [ "$1" = "-h" ]; then
      Manual
    elif [ "$1" = "-r" ]; then
      Remover
    elif [ "$1" = "-rl" ]; then
      Remover2
    elif [ "$1" = "-i" ]; then

   Diretorio
         texto=`echo -e "Digite o nome do programa:"`
   nome=$( dialog --stdout --title 'dgf atualização' --backtitle 'dgf' --inputbox "$texto" 0 0 )
   dialog --title 'Instalação' --infobox '\nVerificando possivel instalação!' 0 0 
   slackpkg install $nome > $DIR/log
   Remover

    fi

  else
    if [ "$1" = "-i" ]; then

      Diretorio
      dialog --title 'Instalação' --infobox '\nVerificando possivel instalação!' 0 0 ; sleep 1  
      slackpkg install $2 > $DIR/log
      Remover

      else

   zzz=aaa
   Manual

    fi

  fi

fi

Scripts recomendados

Utilitário para Slackware 10

Script para criação de usuarios.

Redimensionar e fazer upload de imagens

Atulizações do DAT antivírus Mcafee

Plugin do Nagios em Shell Script


  

Comentários
[1] Comentário enviado por nilodanx52 em 22/12/2009 - 10:13h

Douglas eu to com o slackware 12.2 porem consego usar pacotes do 13(.txz) e como sou iniciante em linux ainda quero saber se esse script funfa no meu S.O.?

É um simples: SIm ou Não! rsrsrsrs

[2] Comentário enviado por removido em 22/12/2009 - 11:51h

script eh traduzido pelo shell, caso seu slackware tenha o shell "logico que tem xD" que tenha o slackpkg "caso nao tenha, instale aki na comu tem artigos sobre ele" e caso tenha o dialog "normalmente ja vem em todos os linux" vai funcionar sim xD


Contribuir com comentário