Atualização automática do Slackware
Publicado por Perfil removido (última atualização em 22/12/2009)
[ Hits: 6.477 ]
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
Converte diretório, subdiretório e arquivos de Maiúscula -> minúscula.
Bashblog v1.0 0 - cria um microblog em HTML5
Envia e-mails periodicamente com back-up do servidor
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (5)
A area de trabalho ficou preta (14)
xubuntu sem sons de eventos (4)