Atualização automática do Slackware
Publicado por Perfil removido (última atualização em 22/12/2009)
[ Hits: 6.676 ]
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
Remover kernels antigos com zenity
Select tempfiles - Database Oracle
Cria relatorio de email enviados e recebidos
iptables geral com roteamento de portas
Verificar conexão com Internet
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Secure boot, artigo interessante, nada técnico. (1)
Preciso recuperar videos *.mp4 corrompidos (1)
\Boot sem espaço em disco (Fedora KDE Plasma 42) (6)









