De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 14 de outubro de 2010
Em caso de problemas com sistemas é sempre recomendável ter uma estratégia de recuperação rápida. Muitos administradores preferem reinstalar tudo. Esta estratégia, embora interessante, é demorada e propensa a falhas. Todos os aplicativos precisam ser reconfigurados, as coisas podem não funcionar imediatamente, enfim, problemas não faltarão.
Uma estratégia que uso há muitos anos, e com vários tipos de sistemas operacionais, como aix (comando mksysb
), SunOS, Solaris, etc. é fazer um arquivo contendo os binários do sistema operacional. Este arquivo precisa ser atualizado apenas quando instalamos produtos novos ou fazemos algum tipo de manutenção. Em plataforma intel, é conveniente também fazer uma cópia do MBR (Master Boot Record), que contém, entre outras coisas, informações de particionamento do disco.
O script backupsys, de autoria de Martin Matusiak, pode ser usado para esta finalidade. Além do script em si, você precisa criar um arquivo contendo a lista dos diretórios a serem excluídos de seu backup. O nome deste arquivo possui o sufixo lst
, e contém algo como:
/ --exclude=/cdrom/* --exclude=/home/* --exclude=/media/* --exclude=/mnt/* --exclude=/proc/* --exclude=/root/* --exclude=/sys/* --exclude=/tmp/* --exclude=/backup/* --exclude=/var/log/*
O nome dos arquivos gerados terá como prefixo (basename) o nome do sufixo adotado para o arquivo lst
. Por exemplo, se o arquivo lst se chamar snoopy.lst
todos os arquivos gerados terão o prefixo snoopy
.
Neste backup, que é feito para uma recuperação rápida, não vale a pena incluir arquivos de log, fila de emails, etc, pois seu objetivo é apenas restaurar o sistema rapidamente. Os dados e outras informações, devem ser armazenados de outra forma.
O script backupsys
que usamos, com modificações para realizar o backup do mbr, está reproduzido a seguir:
#!/bin/bash # # Author: Martin Matusiak <numerodix@gmail.com> # Licensed under the GNU Public License, version 3. # # Modified: Diego # - MBR backup backup_dir=/home/backup num_backups=2 # Max number of backups (if it has more than that, the older is deleted) verbose="$@" lists=$backup_dir/*.lst ext=tgz date_params="%Y-%m-%d-%H%M" nice_val="nice -n20" # colors wh="\e[1;37m" pl="\e[m" ye="\e[1;33m" cy="\e[1;36m" re="\e[1;31m" if [[ "$verbose" && "$verbose" != "-v" ]]; then echo "Usage: $0 [-v]" exit 1 fi if [ ! -d $backup_dir ]; then echo -e "${re}Backup dir $backup_dir does not exist.${pl}"; exit 1 fi for list in $(ls $lists); do name=$(basename $list .lst) file_root=$backup_dir/$name.$(date +$date_params) stdout="1> /dev/null" stderr="2> $file_root.$ext.err" if [ "$verbose" ]; then stdout="" fi echo -n "Making MBR backup... " dd if=/dev/sda of=$file_root.mbr bs=512 count=1 if [ $? -eq 0 ]; then echo "OK" else echo "FAIL" fi cmd="cat $list | $nice_val xargs tar zlcfv \ $file_root.$ext $stderr | tee $file_root.$ext.log $stdout" trap 'echo -e "${re}Received exit signal${pl}"; exit 1' INT TERM echo " * Running \`$name\` job..." if [ "$verbose" ]; then echo -e ${ye}$cmd${pl}; fi echo -en $cy; bash -c "$cmd" ; echo -en $pl status_code=$? if [ $status_code -gt 0 ]; then # Dump error log echo -en $re ; cat $file_root.$ext.err echo -en $pl ; echo "Tar exit code: $status_code" else # Kill error file rm $file_root.$ext.err fi # Evict old backups we don't want to keep num=$num_backups for evict in $(ls -t $backup_dir/$name.*.$ext); do if [ $num -le 0 ]; then rm -f "$evict" else num=$(($num-1)) fi done # Report number of files in backup echo -n "$(wc -l < $file_root.$ext.log) files" echo ", $(ls -l $file_root.$ext | awk '{ print $5 }') bytes" done
Ao final da execução teremos os seguintes arquivos:
hostname.2010-10-05-0843.tgz.log | arquivo contendo o log de execução do script |
hostname.2010-10-05-0843.mbr | arquivo contendo o MBR do servidor |
hostname.2010-10-05-0843.tgz | arquivo compactado com o sistema operacional |
O valor hostname será substituido pelo prefixo do arquivo terminado em lst
.
Leia também o artigo original, easy peasy full system backup. Veja também o script original.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários