#!/bin/bash # # Backup em CD do diretório de usuários. # if [ $UID -ne 0 ]; then su -c $0 exit fi # Diretórios e/ou arquivos a copiar copiar="/home/fulano /home/beltrano" # Diretórios e/ou arquivos a ignorar ignorar="fulano/tmp beltrano/tmp beltrano/mp3" # Unidade gravadora cdrwdev="/dev/cdrom2" script=$(basename $0) log="/tmp/$script.$$.log" date >> $log for f in $copiar; do if [ ! -e $f ]; then echo "$f: Não encontrado. Excluindo da lista de backup..." else origem="$origem $f" fi done echo "Executando backup de: $origem" echo "Ignorando backup de : $ignorar" arq_origem="/tmp/$script-origem.$$" arq_ignore="/tmp/$script-ignore.$$" echo "Gerando listas de arquivos..." for f in $origem; do echo $f >> $arq_origem done for f in $ignorar; do echo $f >> $arq_ignore done backup="/tmp/$script-$(date +%Y%m%d).tar.gz" echo "Compactando arquivos para backup em $backup... Aguarde..." tar -cvpz -T $arq_origem -X $arq_ignore -f $backup 1>>$log 2>>$log echo -n "Verificando tamanho do arquivo de backup... " tamanho=$(du -k $backup | tail -n 1 | cut -f 1) echo "$tamanho kbytes..." if [ $tamanho -gt 660000 ]; then echo "Arquivo de backup maior que a capacidade do CD! Não é possível executar a gravação!" apaga="nao" else echo "Gerando arquivo ISO para gravação..." mkisofs -max-iso9660-filenames -V "Backup_$(date +%Y%m%d)" -o /tmp/backup.iso $backup 1>>$log 2>>$log if [ $? -ne 0 ]; then echo "Erro ao criar arquivo ISO!" else echo "Apagando CD-RW..." cdrecord dev=$cdrwdev blank=minimal 1>>$log 2>>$log if [ $? -ne 0 ]; then echo "Erro ao apagar CD-RW!" else echo "Gravando backup no CD... Aguarde..." cdrecord -v -eject dev=$cdrwdev -data /tmp/backup.iso 1>>$log 2>>$log if [ $? -ne 0 ]; then echo "Erro ao gravar backup!" else echo "Backup finalizado com sucesso!" fi fi fi fi echo "Limpando e saindo..." rm -f /tmp/backup.iso $backup $arq_origem $arq_ignore date >> $log