msoliver
(usa Debian)
Enviado em 02/09/2016 - 14:14h
samubellan escreveu:
Vou querer sim Marcelo. Quanto mais conhecimento melhor! Obrigado.
--------------------------------------------------------------------------
Boa tarde Samubellan.
Em tempo . . .
Copiar somente os arquivos como o colega sugeriu, não é o suficiente . . .
Atente-se ao detalhe: Qdo "formata/particiona" o pendrive com o "QPARTED", o "DONO" é o "ROOT", logo, terá que executar o script como "ROOT", ou MUDAR o DONO . . .
Segue o script:
#INICIA NA LINHA ABAIXO
#!/bin/bash
#CASO NECESSÁRIO, ALTERE O PONTO DE MONTAGEM. "PMONT"
PMONT="media"
DIRBKP="CACHE_APT"
INICIO() {
tput clear
echo -e "\n BACKUP DO CACHE do APT COMPLETO.\n DEFINA o DIRETóRIO DESTINO:\n\n" [01] ~/"$DIRBKP\n [02] PENDRIVE/$DIRBKP\n"
read -p "OPÇãO: " -e -n2
if [[ $REPLY != +(01|02) ]];then INICIO
elif [ $REPLY = "01" ];then UNID="$HOME";BACKUP
elif [ $REPLY = "02" ];then DEFUNID
fi
}
DEFUNID() {
echo -e "\n PLUGUE O PENDRIVE\n CERTIFIQUE-SE QUE ESTÁ MONTADO."
PROMPT
DEV=$(mount|awk '$3~/\/'$PMONT'\/'$USER'/{print $3}')
NUMREG=$(awk 'BEGIN {RS="\n";}END{print NR}' <<< "$DEV")
echo -e "\n DISPOSITIVOS/UNIDADES ENCONTRADOS:\n"
awk -F"/" 'BEGIN {printf " ID:\tDISPOSITIVO:\n"} {printf " %02d\t%s\n" ,NR,$0}' <<< "$DEV"
echo -e "\n INFORME O ID DA UNIDADE:"
read -p " ID: " -n2 UNID
if (($UNID<1 || $UNID>$NUMREG));then
echo -e "\n UNIDADE INVáLIDA\n" ; INICIO
elif (($UNID>=1 && $UNID<=$NUMREG));then
UNID=$(sed -n "$UNID"p <<< "$DEV")
echo -e "\n CONFIRME a UNIDADE.\n UNIDADE:$UNID?\n"
PERGUNTA
fi
}
BACKUP() {
echo -e "\n ACESSANDO "$UNID""
[ "$PWD" != "$UNID" ] && cd "$UNID"
echo -e "\n BUSCANDO BACKUP ANTIGO"
sleep 2.5
if [ -e "$DIRBKP" ];then
echo -e "\n EXCLUINDO BACKUP ANTIGO"
sleep 2.5
(($(ls -l "$DIRBKP"/|awk '{T+=$5};END{print T}')>0)) && rm "$DIRBKP"/*.*
else
mkdir $DIRBKP
fi
cd $DIRBKP
sleep 2.5
echo -e "\n SALVA: /var/lib/apt/lists/\n COMO: lists.tar\n"
tar -cvf lists.tar /var/lib/apt/lists/ --exclude=lock
sleep 2.5
echo -e "\n SALVA: /var/cache/apt/archives/\n COMO: archives.tar\n"
tar -cvf archives.tar /var/cache/apt/archives/ --exclude=lock
sleep 2.5
echo -e "\n SALVA: \"/etc/apt/sources.list\"\n COMO: sources.list\n"
cp /etc/apt/sources.list .
sleep 2.5
[ -e /var/cache/oracle-jdk8-installer/*.gz ] && {
echo -e "\n SALVA: /var/cache/oracle-jdk8-installer/*.gz\n COMO: oracle-jdk8.tar\n";
tar -cvf oracle-jdk8.tar /var/cache/oracle-jdk8-installer/*.gz ; }
sleep 2.5
(($(ls -l /etc/apt/sources.list.d/*.list|awk '{T+=$5};END{print T}')>0)) && {
echo -e "\n SALVA: \"/etc/apt/sources.list.d/*.list\"\n COMO: list_d.tar\n";
tar -cvf list_d.tar /etc/apt/sources.list.d/*.list ; }
sleep 2.5
(($(ls -l /etc/apt/trusted.gpg.d/*.gpg|awk '{T+=$5};END{print T}')>0)) && {
echo -e "\n SALVA: \"/etc/apt/trusted.gpg.d/*.gpg\"\n COMO: gpg.tar\n";
tar -cvf gpg.tar /etc/apt/trusted.gpg.d/*.gpg ; }
echo -e "\n FEITO"\!"\n SALVO EM: "$UNID"/"$DIRBKP""
}
PROMPT() { printf "\e[1;33m\n << PRESS ANY KEY TO CONTINUE >> \e[m\n" ; read -s -n1 -t5 ; }
INICIO
#TERMINA NA LINHA ACIMA
É isso, espero que seja útil...
Qquer erro que encontrar, PFV, me comunique.
Att.<
Marcelo Oliver