PKG Sync v1.0 - Utilitário para backup de pacotes deb baixados
Publicado por Mauricio Ferrari (última atualização em 21/07/2020)
[ Hits: 1.091 ]
Homepage: https://www.youtube.com/@LinuxDicasPro
Download 1595094835.pkgsync (versão 2)
Criei esse utilitário para uso pessoal, mas resolvi compartilhar.
Às vezes, algo inesperado pode acontecer em nosso sistema por conta de algum procedimento mal sucedido ou problemas com pacotes de terceiros e até em caso de ter que reformatar, você terá que instalar os pacotes todos de novo.
Agora, se você já tem os pacotes guardados, o processo de reformatação será muito mais rápido, pois eles não precisaram ser baixados de novo, apenas atualizados se for o caso.
Por isso a necessidade desse script. Tentei faze-lo o mais simplificado possível. Depois de muitas revisões ele está com as seguintes funcionalidades:
pkgsync - sozinho ele salva os pacotes instalados 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.
Espero que gostem.
Versão 2 - Enviado por Mauricio Ferrari em 18/07/2020
Changelog:
Segui o mesmo esquema, mas fiz alguns melhoramentos e corrigi alguns bugs e inseri algumas opções extras.
pkgsync cp - Copia os pacotes do cache apt para o diretório pré configurado.
pkgsync clean 0 - o zero ignora a cópia dos pacotes do cache do apt. O mesmo serve assim:
pkgsync 0
Na próxima versão vou mudar a metodologia de programação, pois essa de "expremer" o código não funcionou muito bem, mas o código funciona. Vou estruturar melhor na próxima.
#!/bin/bash ### PKG Sync v1.0 - 15/07/2020 - By Mauricio Ferrari - <m10ferrari1200@gmail.com> ### ### Uso: ./pkgsync <clean/rmcache> | Apenas para verificação: ./pkgsync ### # Configuração Manual DR=~/Mint20 DS=~/excluded.log RL=1 # default 0 NB=0 # default 0 # 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} # Listando ou limpando o cache dos pacotes baixados do apt [[ $1 = "ls" ]] && ls --color=auto $( echo "$DB" | cut -d '*' -f 1 ) && exit [[ $1 = "rm" ]] && sudo rm $DB && exit # 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 # Controle de erro [[ ! -e "$DR" ]] && echo && echo O diretório $DR não existe. && echo && exit [[ `ls --ignore=*.deb $DR` ]] && echo && echo O diretório $DR deveria conter só arquivos DEB. && echo && exit # Backup dos pacotes instalados no sistema se NB=0 [[ $NB = 0 ]] && [[ `ls $DB 2> $NL` ]] && cp $DB $DR # 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 $VW $DS && rm -r $TM
organização_topografia primeiro arquivo
Criando com rapidez um banco de dados no PostgreSQL
Comparar datas (muito simples)
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código [RESOLVID... (4)
Recuperar arquivos de HD em formato RAW usando Linux (0)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta