Atualização automática do Slackware
Publicado por Perfil removido (última atualização em 22/12/2009)
[ Hits: 6.720 ]
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
Unificando arquivos de bloqueio e liberação no squid
Script para desligar o servidor
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









