[CentOS-pt-br] Backup em HD portátil

Gabriel Franca gabriel.franca em gmail.com
Segunda Janeiro 5 19:23:37 UTC 2015


Opa,

eu montei esse script tem um tempo da uma ajustada pro que vc precisa que pra mim funciona 100%

eu uso hd externo formatado em ext4 e dei um label nele com o e2label (para evitar que ele monte um hd no lugar do outro etc...)

tbm uso o ssmtp para que ele me envie um status do backup diariamente.


#!/bin/bash
hora=`date +%H:%M`
data=`date +%Y-%b-%d`

echo "arquivos temporarios do bkp"
arquivo_temp1=/tmp/lx-$data.tgz
arquivo_temp2=/tmp/user-$data.tgz
arquivo_temp3=/tmp/share-$data.tgz
arquivo_temp4=/tmp/dpto-$data.tgz
arquivo_temp5=/tmp/scripts-$data.tgz
arquivo_temp6=/tmp/software-$data.tgz
arquivo_temp7=/tmp/sistemas-$data.tgz

echo "local onde sera guardado os bkps"
disp_backup="/media/smart/backup"

echo "arquivos a serem salvos no backup"
lx="/etc /root/gerencia"
user="/dados/users"
share="/dados/share"
dpto="/dados/dpto"
software="/dados/software"
scripts="/dados/scripts"
sistemas="/media/pacto/Quickly/bd /media/pacto/Aclon/bd"

echo "log dos backups"
arquivo_log=/var/log/backup/backup-$data
arquivo_log1=/var/log/backup/backuplx-$data
arquivo_log2=/var/log/backup/backupuser-$data
arquivo_log3=/var/log/backup/backupshare-$data
arquivo_log4=/var/log/backup/backupdpto-$data
arquivo_log5=/var/log/backup/backupscripts-$data
arquivo_log6=/var/log/backup/backupsoftware-$data
arquivo_log7=/var/log/backup/baqckupsistemas-$data

sync
sleep 20
sync

function execbkp {
echo "Iniciando o backup do dia $data as $hora"
if 	tar -czvf $arquivo_temp1 $lx > $arquivo_log1
	tar -czvf $arquivo_temp2 $user > $arquivo_log2
	tar -czvf $arquivo_temp3 $share > $arquivo_log3
	tar -czvf $arquivo_temp4 $dpto > $arquivo_log4
	tar -czvf $arquivo_temp5 $scripts > $arquivo_log5
	tar -czvf $arquivo_temp6 $software > $arquivo_log6
	tar -czvf $arquivo_temp7 $sistemas > $arquivo_log7
	
then
        echo "Backup feito com sucesso"
else
        echo "Ocorreram erros no backup, favor consultar o arquivo mv $arquivo_log1 $arquivo_log2 $arquivo_log3 $arquivo_log4 $arquivo_log5 $arquivo_log6 para maiores informacoes"
fi

sync
sleep 30
sync

echo "Movendo o Backup para o SMART"
mv $arquivo_temp1 $disp_backup >> $arquivo_log1 2>&1
mv $arquivo_temp2 $disp_backup >> $arquivo_log2 2>&1
mv $arquivo_temp3 $disp_backup >> $arquivo_log3 2>&1
mv $arquivo_temp4 $disp_backup >> $arquivo_log4 2>&1
mv $arquivo_temp5 $disp_backup >> $arquivo_log5 2>&1
mv $arquivo_temp6 $disp_backup >> $arquivo_log6 2>&1
mv $arquivo_temp7 $disp_backup >> $arquivo_log7 2>&1

sync
sleep 10
sync
}

echo "Iniciando Backup"
echo
echo "Montando o SMART"
if ! mount LABEL=hdbkp /media/smart; then
   echo "Subject: Erro na unidade de Backup" > $arquivo_log
   echo "hd externo com erro backup nao realizado !!!!!" >> $arquivo_log
        SHELL=/bin/sh
        PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
        ssmtp -C /root/gerencia/scripts/ssmtp.conf EMAIL em SEUEMAIL.COM.BR < $arquivo_log
else
	
	execbkp
        SHELL=/bin/sh
        PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

        echo -e "Subject: Backup diario\n\n" > $arquivo_log
        echo "Prezados segue o relatorio do backup" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "$data Backup feito com sucesso" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "arquivos dentro da pasta samba" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "backup sistemas">> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "`du -hs /media/smart/backup/software-* | sort -n`" >> $arquivo_log
        sed -i "s/\/media\/smart\/backup\///g" $arquivo_log
		echo "" >> $arquivo_log
		echo "-----------------------------------------------------------" >> $arquivo_log
		echo "`du -hs /media/smart/backup/sistemas-* | sort -n`" >> $arquivo_log
        sed -i "s/\/media\/smart\/backup\///g" $arquivo_log
		echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "backup scripts" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "`du -hs /media/smart/backup/scripts-* | sort -n`" >> $arquivo_log
        sed -i "s/\/media\/smart\/backup\///g" $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "backup share" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "`du -hs /media/smart/backup/share-* | sort -n`" >> $arquivo_log
        sed -i "s/\/media\/smart\/backup\///g" $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "backup Linux" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "`du -hs /media/smart/backup/lx-* | sort -n`" >> $arquivo_log
        sed -i "s/\/media\/smart\/backup\///g" $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "backup usuarios" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "`du -hs /media/smart/backup/user-* | sort -n`" >> $arquivo_log
        sed -i "s/\/media\/smart\/backup\///g" $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "backup departamental" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "`du -hs /media/smart/backup/dpto-* | sort -n`" >> $arquivo_log
        sed -i "s/\/media\/smart\/backup\///g" $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "backup ldap" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "`du -hs /media/smart/backup/bkpldap* | sort -n`" >> $arquivo_log
        sed -i "s/\/media\/smart\/backup\///g" $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "Iniciando Teste dos arquivo compactados" >> $arquivo_log
        RETN=$?
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "testando bkp sistemas" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        tar -tzf /media/smart/backup/software-$data.tgz > /dev/null 2>&1
        if [ $RETN -eq "0" ]; then
                echo "Arquivo OK" >> $arquivo_log
        else
                echo "Arquivo danificado" >> $arquivo_log
        fi
        echo "-----------------------------------------------------------" >> $arquivo_log
        
        tar -tzf /media/smart/backup/sistemas-$data.tgz > /dev/null 2>&1
        if [ $RETN -eq "0" ]; then
                echo "Arquivo OK" >> $arquivo_log
        else
                echo "Arquivo danificado" >> $arquivo_log
        fi
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "testando bkp scripts" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        tar -tzf /media/smart/backup/scripts-$data.tgz > /dev/null 2>&1
        if [ $RETN -eq "0" ]; then
                echo "Arquivo OK" >> $arquivo_log
        else
                echo "Arquivo danificado" >> $arquivo_log
        fi
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "testando bkp share" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        tar -tzf /media/smart/backup/share-$data.tgz > /dev/null 2>&1
        if [ $RETN -eq "0" ]; then
                echo "Arquivo OK" >> $arquivo_log
        else
                echo "Arquivo danificado" >> $arquivo_log
        fi
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "testando bkp linux" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        tar -tzf /media/smart/backup/lx-$data.tgz > /dev/null 2>&1
        if [ $RETN -eq "0" ]; then
                echo "Arquivo OK" >> $arquivo_log
        else
                echo "Arquivo danificado" >> $arquivo_log
        fi
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
         echo "testando bkp usuarios" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        tar -tzf /media/smart/backup/user-$data.tgz > /dev/null 2>&1
        if [ $RETN -eq "0" ]; then
                echo "Arquivo OK" >> $arquivo_log
        else
                echo "Arquivo danificado" >> $arquivo_log
        fi
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "testando bkp Departamental" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        tar -tzf /media/smart/backup/dpto-$data.tgz > /dev/null 2>&1
        if [ $RETN -eq "0" ]; then
                echo "Arquivo OK" >> $arquivo_log
        fi
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo -e "`df -h`" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
           
        echo "Teste do HD" >> $arquivo_log
        echo "Disco Principal" >> $arquivo_log
        smartctl -H /dev/sda >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log

        echo "" >> $arquivo_log
        echo -e "`df -h`" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "-----------------------------------------------------------" >> $arquivo_log
        echo "" >> $arquivo_log
        echo "Inicio do backup as $hora" >> $arquivo_log
        hora1=`date +%H:%M`
        echo "Fim do backup as $hora1" >> $arquivo_log
        echo "Enviando email"
        ssmtp -C /root/gerencia/scripts/ssmtp.conf EMAIL em SEUEMAIL.COM.BR < $arquivo_log

fi

sync
sleep 60
sync

echo "Desmotando o SMART"
umount /media/smart
hora=`date +%H:%M`
echo "Fim do backup as $hora"

Atenciosamente,

Gabriel Franca

> Em 05/01/2015, à(s) 17:07, Lucas <detona.headmetal em gmail.com> escreveu:
> 
> Patrik
> 
> Usa o rsync !! Com ele você pode fazer backup incremental ou completo pode ter lista de exclusão e tudo mais
> 
> Em 05/01/2015 17:03, "Fabio Fraga [DS]" <fabio em dataspace.com.br <mailto:fabio em dataspace.com.br>> escreveu:
> Fala, Patrick. boa tarde.
> 
> Se usar cp, caso tenha que substituir algo, teu script terá que acrescentar o "y|cp -av *files" no script em caso de substituição do mesmo.
> 
> Te sugiro fortemente o uso do rsync. 
> 
> 
> Atenciosamente,
> Fábio Fraga Machado
> Diretor de Tecnologia e Infraestrutura
> Data Space Networks & TI
> 
> : Telefone: (48) 4052-9252
> : MSN:  fabio em dataspace.com.br <mailto:fabio em dataspace.com.br>
> : GTalk: fabio em dataspace.com.br <mailto:fabio em dataspace.com.br>
> 2015-01-05 16:46 GMT-02:00 Patrick Sarnighausen <psarni em yahoo.com <mailto:psarni em yahoo.com>>:
> Olá pessoal, tive problemas com minha unidade de backup LTO e temporariamente preciso fazer o backup em HDs portáteis.
> Alguém já fez isto? Pensei em formatar em Ext3 ou Ext4 e realizar um cp diariamente. Alguma sugestão melhor?
> Alguém conhece um bom local para o envio da unidade para manutenção, preferencialmente em São Paulo (Estado ou cidade).
> 
> Patrick Sarniguasen
> 
> _______________________________________________
> CentOS-pt-br mailing list
> CentOS-pt-br em centos.org <mailto:CentOS-pt-br em centos.org>
> http://lists.centos.org/mailman/listinfo/centos-pt-br <http://lists.centos.org/mailman/listinfo/centos-pt-br>
> 
> 
> 
> _______________________________________________
> CentOS-pt-br mailing list
> CentOS-pt-br em centos.org <mailto:CentOS-pt-br em centos.org>
> http://lists.centos.org/mailman/listinfo/centos-pt-br <http://lists.centos.org/mailman/listinfo/centos-pt-br>
> 
> _______________________________________________
> CentOS-pt-br mailing list
> CentOS-pt-br em centos.org
> http://lists.centos.org/mailman/listinfo/centos-pt-br

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.centos.org/pipermail/centos-pt-br/attachments/20150105/7b200ea6/attachment-0001.html>


Mais detalhes sobre a lista de discussão CentOS-pt-br