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.478 ]

Homepage: https://www.youtube.com/@LinuxDicasPro

Download 7141.pkgsync




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.

  



Esconder código-fonte

#!/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

Scripts recomendados

Limpa comentários e linhas em branco nos arquivos de configuração (.conf)

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - APAGA AS MSG <.APAGADAS> GERADAS PELO SCRIPT delete_all_u

Plugin BACULA

epona-1.4.14

Criar gráficos, estatística da "Google-Scholar" usando wget


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts