Atualização automática do Slackware
Publicado por Perfil removido (última atualização em 22/12/2009)
[ Hits: 6.444 ]
Simplifique na hora de atualizar o seu Slackware, torne esta tarefa automática!
Testado em Slackware 13
Requerimentos:
- slackpkg já configurado
- dialog
#!/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
Gerando ISO com o camando dd, e exibindo "barra de progresso".
Restaurar backup de uma conta cpanel mesmo que ela já exista
Script em Bash para gerenciar as novas versões do Java e permitir escolher a versão pa
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Instalação Uefi com o instalador clássico do Mageia [RESOLVIDO] (2)
Melhorando a precisão de valores flutuantes em python[AJUDA] (11)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)