Pular para o conteúdo

PKG Sync v3.0 - Utilitário para backup de pacotes deb baixados - Versão final

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.
Mauricio Ferrari (LinuxProativo) maurixnovatrento
Hits: 1.845 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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.
Download 7141.pkgsync Enviar nova versão

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

backup em zipdrive externo

Backup de vários servidores, diferenciado a rotina pela aplicação

VPN automática entre sites

Script para balanceamento de link's de internet

Script que gera um relatório diário do sistema!!!

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.