Atualização automática do Slackware
Publicado por Perfil removido (última atualização em 22/12/2009)
[ Hits: 6.359 ]
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
Script para criar usuarios Dialup
Cadastrando usuários para email no Slackware de forma mais simples
Retra de iptables para DMZ na porta 80
Converter Wav para MP3 usando Lame e PPSS para multi processamento via shell script - Asterisk
Claro 3g Sony Ericsson md300 script conexao - Revisado
Como escolher o melhor escalonador de CPU para melhorar o desempenho da máquina
Curiosidade sobre DOOM Guy e Isabelle de Animal Crossing
Inicializando servidor Ubuntu na AWS e rodando apache em Container
Instalando TeamViewer no Debian 12
Conheça o Octopi, outro frontend para o Pacman com acesso ao AUR (Arch Linux e derivados)
Terminal transparente no Debian 12 com interface i3wm usando Xfce4-Terminal e Compton
O que é isso no meu navegador? [RESOLVIDO] (5)
Eu estou com problemas para usar o QBASIC no Dosbox X (2)
Ubuntu simplesmente morreu (8)
Como colocar uma assinatura digital em um código compilado ! (2)