Atualização automática do Slackware
Publicado por Perfil removido (última atualização em 22/12/2009)
[ Hits: 6.582 ]
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
Executando comandos remotos via Dropbox
Script q ue cria uma galeria de imagens
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
usb's param de funcionar do nada (3)
manjaro 22xx nativo para minha sbc, deu certo. (13)