PKG Sync v3.0 - Utilitário para backup de pacotes deb baixados - Versão final
Publicado por Mauricio Ferrari (última atualização em 29/07/2020)
[ Hits: 1.678 ]
Homepage: https://www.youtube.com/@LinuxDicasPro
Essa é a versão final do pkgsync que resolvi postar separadamente: https://www.vivaolinux.com.br/script/PKG-Sync-v10-Utilitario-para-backup-de-pacotes-deb-baixados
No link acima tem todos os detalhes, mas vou resumir.
pkgsync - sozinho ele copia os pacotes do cache apt em um diretório pré-configurado e cria um log com os pacotes obsoletos.
pkgsync clean - Além do backup, esse parâmetro já limpa os pacotes obsoletos. O log ainda é gerado.
pkgsync ls - Lista os pacotes presentes no cache do apt e sai.
pkgsync rm - Limpa os pacotes presentes no cache do apt e sai.
pkgsync cp - Copia os pacotes do cache apt para o diretório pré configurado e finaliza.
pkgsync clean 0 - o zero ignora a cópia dos pacotes do cache do apt. O mesmo serve assim:
pkgsync 0
Não precisei reestruturar o código como eu pensei. Apenas reorganizei algumas linhas e inseri uma função que ajudou muito na finalização do script.
#!/bin/bash
### PKG Sync v3.0 - 24/07/2020 - By Mauricio Ferrari - <m10ferrari1200@gmail.com> ###
### Uso: ./pkgsync <clean/rm/ls/cp/0> | Apenas para verificação: ./pkgsync ###
# Configuração Manual
DR=~/Mint20
DS=~/excluded.log
RL=1 # default 1
# Constantes A=${A:-B}
DB=${DB:-/var/cache/apt/archives/*deb} # */
BN=${BN:-/usr/bin}
NL=${NL:-/dev/null}
TM=${TM:-temp}
L1=${L1:-$TM/lst1}
L2=${L2:-$TM/lst2}
CL=${CL:-$TM/clean}
# Finalização do script
fim(){
echo -e "\033[0m"
[[ -e $TM ]] && rm -r $TM
exit
}
# Listando ou limpando o cache dos pacotes baixados do apt
[[ $1 = "ls" ]] && echo -e "\033[1;37m" && ls --color=auto $( echo "$DB" | cut -d '*' -f 1 ) && fim
[[ $1 = "rm" ]] && apt clean && echo && echo -e "\033[1;34m Cache APT redefinido." && fim
# Verificação de editores para exibição do log
VW=xed && [[ ! -e $BN/$VW ]] && VW=pluma && [[ ! -e $BN/$VW ]] && VW=gedit && [[ ! -e $BN/$VW ]] && VW=kate && [[ ! -e $BN/$VW ]] && VW=leafpad && [[ ! -e $BN/$VW ]] && VW=0
# Controle de erro
[[ ! -e "$DR" ]] && echo && echo -e "\033[1;31m O diretório $DR não existe." && fim
[[ `ls --ignore=*.deb $DR` ]] && echo && echo -e "\033[1;31m O diretório $DR deveria conter só arquivos DEB." && fim
# Backup dos pacotes instalados no sistema se $1 não for 0
[[ $1 != 0 ]] && [[ $2 != 0 ]] && [[ `ls $DB 2> $NL` ]] && echo -e "\033[1;34m" && cp -v $DB $DR | cut -d '/' -f 6 | sed "s/'.*'/ copiado/g"
[[ $1 = "cp" ]] && [[ ! `ls $DB 2> $NL` ]] && echo && echo -e "\033[1;33m Nada Copiado." && fim
[[ $1 = "cp" ]] && fim
# Criar o diretório temporário e limpar o log obsoleto se RL=1
mkdir $TM 2> $NL && [[ $RL = 1 ]] && rm $DS 2> $NL
# Gerando as listas de comparação.
apt list --installed 2> $NL | sed -e 's| \[.*\]||g' -e 's|/.*now |_|g' -e 's| |_|g' -e '1d' 1> $L1
ls $DR | sed -e 's|\.deb||g' -e 's|%3a|:|g' > $L2
# Comparando as listas e excluindo os pacotes obsoletos caso parâmetro clean for usado.
for x in `cat $L2`; do
[[ $(cat $L1 | grep -w $x) = "" ]] && echo $x >> $DS && [[ $1 = "clean" ]] && echo $x | sed -e 's|:|%3a|g' > $CL && rm $DR/$(cat $CL).deb
done
# Visualizando o novo log se possível
[[ ! `cat $DS 2> $NL` ]] && echo && echo -e "\033[1;33m Nenhum log foi gerado. Não há pacotes obsoletos." && fim
[[ $VW = 0 ]] && echo && echo -e "\033[1;33m Não foi possível encontrar um editor para visualizar o log." && fim
[[ $VW != 0 ]] && $VW $DS && fim
diMail - envia e-mail com um front do dialog
Visual para tcpdump com dialog
Player de música em Shell com Yad
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (0)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)
Secure boot, artigo interessante, nada técnico. (5)









