TxzSync 1.0 - Fazer Backup dos Pacotes Baixados pelo Slackpkg

Publicado por Mauricio Ferrari (última atualização em 28/08/2020)

[ Hits: 670 ]

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

Download txzsync




Se você configurou o slackpkg.conf com a opção DELALL para off, esse script pode ser útil.

Possui os mesmos comandos do PkgSync 3.0, só que portado para o Slackware.

O link do PkgSync 3.0 é esse:

https://www.vivaolinux.com.br/script/PKG-Sync-v30-Utilitario-para-backup-de-pacotes-deb-baixados-Ver...

Espero que seja útil.

  



Esconder código-fonte

#!/bin/bash

 ### TXZ Sync v1.0 - 24/08/2020 - By Mauricio Ferrari - <m10ferrari1200@gmail.com> ###
 ### Uso: ./txzsync <clean/rm/ls/cp/0> | Apenas para verificação: ./txzsync        ###

# Configuração Manual
DR=~/Current
DS=~/excluded.log
RL=1 # default 1

# Constantes A=${A:-B}
DB=${DB:-/var/cache/packages/*}    #  */ 
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" ]] || [[ $1 = "rm" ]] && [[ ! `ls -R $DB 2> $NL | grep txz` ]] && echo && echo -e "\033[1;31m Diretório $DB Vazio." && fim
[[ $1 = "ls" ]] && echo -e "\033[1;37m" && ls -R $DB | grep ".txz" | grep -v ".asc" && fim
[[ $1 = "rm" ]] && sudo rm -R $DB && echo && echo -e "\033[1;34m Cache slackpkg 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=*.txz $DR` ]] && echo && echo -e "\033[1;31m O diretório $DR deveria conter só arquivos TXZ." && fim

# Backup dos pacotes instalados no sistema se $1 não for 0
[[ $1 != 0 ]] && [[ $2 != 0 ]] && [[ `ls -R $DB 2> $NL | grep txz` ]] && echo -e "\033[1;34m" && find -H $DB -type f -print0 | xargs -0 -L1 -i cp -v {} $DR | cut -d "'" -f 2 | sed "s/$/ copiado/g" | grep -v ".asc" && rm $DR/*.asc 2> $NL  # */  
[[ $1 = "cp" ]] && [[ ! `ls -R $DB 2> $NL | grep txz` ]] && 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.
ls /var/log/packages 1> $L1
ls $DR | sed -e 's|\.txz||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" ]] && rm $DR/$x.txz
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

Crie bash scripts "on-the-fly"

backup interativo em dialog

Postfix: Configurando o Gmail como Relay (moleza)

Montador de disquete

Ripar um CD de áudio


  

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