Backup e restauração dos programas instalados em sistemas baseados em Debian

Publicado por Perfil removido (última atualização em 26/10/2009)

[ Hits: 11.596 ]

Download dpkg_backup.sh




Algumas vezes precisei instalar ou reinstalar um sistema no intuito de deixá-lo com todos os recursos já conhecidos na instalação anterior ou em outra máquina semelhante.

Então segue o script que faz um backup da lista de programas instalados e gera um executável para realizar a restauração.

Ajuste a linha 5 conforme suas necessidades (local onde gravar o backup).

Até +

  



Esconder código-fonte

#!/bin/bash

# backup dos programas instalados

BKP_DIR="/backups/system/dpkg"
BKP_DATE=$(date "+%d-%m-%Y")
BKP_DIR_TMP="$BKP_DIR/ultimo_bkp"
hostname=$(hostname -s)

function backup(){

test ! -d $BKP_DIR && mkdir -p $BKP_DIR
test ! -d $BKP_DIR_TMP && mkdir -p $BKP_DIR_TMP
cd $BKP_DIR_TMP && rm -f $BKP_DIR_TMP/* ;

# Gera o script de restauração (no mesmo diretório do backup).
cat > dpkg-restore.sh << "EOF"
#!/bin/bash

# ============================================================================
dpkg --set-selections < pkg.lst
apt-get update
apt-get dist-upgrade
apt-get dselect-upgrade
apt-get -f install

EOF

chmod +x dpkg-restore.sh

# Gera uma lista com todos os programas instalados e salva no arquivo pkg.lst
dpkg --get-selections -a > pkg.lst

lista=$(ls -t $BKP_DIR_TMP)
# Gera um md5 do script de restauração e da lista de programas para uma posterior análise.
(find $lista -type f -print0 | xargs -0 md5sum > $BKP_DIR_TMP/$hostname-$BKP_DATE.md5) && sync ;

lista2=$(ls -t $BKP_DIR_TMP)
tar -czvf ../$hostname-$BKP_DATE.tgz $lista2
cd $BKP_DIR

# Gera um md5 do backup em formato tar.
md5sum $hostname-$BKP_DATE.tgz > $hostname-$BKP_DATE.tgz.md5

}

backup ;

exit 0

Scripts recomendados

Script para montar dispositivo Android

Procura Arquivos

shieldscript - Script para defesa básica do seu GNU/Linux

Menu secundário

Instalador de Minecraft


  

Comentários
[1] Comentário enviado por evaldoavelar em 26/10/2009 - 12:33h

Script muito interessante!

Mas deve-se tomar cuidado com bakups de arquivos binários, pois se o sistema tiver sido invadido por um cracker, provavelmente ele instalará rootkits colocando backdoors nos arquivos binários.

O melhor momento para se fazer bakups de binários é após a instalação do sistema com a máquina desconectada da rede, sem contato nenhum com o mundo exterior.

[2] Comentário enviado por removido em 26/10/2009 - 14:26h

Olá evaldoavelar,

Concordo com você quando diz "O melhor momento para se fazer bakups de binários é após a instalação do sistema".
Não sei se você entendeu direito o que esse script faz exatamente:

Ele gera uma lista com os nomes dos programas instalados e em seguida gera um shell script para fazer uma atualização do sistema, instalando os programas que fazem parte da lista. Não é gerado backup de nenhum binário. Quando executamos o script gerado pelo backup, o dpkg verifica o que deve ser instalado e em seguida o apt-get faz o update e upgrade utizando o /etc/apt/sources.list original, baixando os pacotes do repositório oficial e não de um backup.

Até +

[3] Comentário enviado por guicampos26 em 26/03/2016 - 16:47h

Primeiramente, parabéns pelo artigo. Muito bom.
Tenho uma dúvida. Uso hoje o Ubuntu 14.04 e assim que sair a versão LTS do 16.04 instalarei. Posso usar este script tranquilamente? Ou teria algum problema? Tipo, fazer o backup, formatar com o 16.04 e executar este script. Ou me aconselha a reinstalar um por um dos meus programas?

"O conhecimento é o único bem que quanto mais se compartilha, mais se aumenta. E jamais o tirarão de você".


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts