Pessoal,

Obrigado àqueles que colaboraram.
Segue a rotina escrita para atender à necessidade:

# Funcao SALVAR - Grava os dados do diretorio ou arquivo em uma fita usando
software Legato
SALVAR()
{
  # Inicia variaveis
  unset NOME_VOL_TAR
  unset NOME_VOL_TAR2
  unset NOME_VOL_COMP

  # Define diretorio de trabalho
  DIR_TRABALHO="/u01/backup/arquivos"
  cd $DIR_TRABALHO

  # Identifica o nome do diretorio ou arquivo recebido pela funcao
  DIR_BACKUP="$1"

  # Monta o nome do arquivo compactado a ser gerado (troca as "/" por "_")
  CONT=2
  PARTE_NOME="`echo $DIR_BACKUP |cut -f$CONT -d"/"`"
  NOME_ARQUIVO="$PARTE_NOME"
  while [ "$PARTE_NOME" ]; do
    CONT=$((CONT+1))
    PARTE_NOME="`echo $DIR_BACKUP |cut -f$CONT -d"/"`"
    if [ "$PARTE_NOME" ]; then
      NOME_ARQUIVO="$NOME_ARQUIVO"_"$PARTE_NOME"
    fi
  done

  # Identifica o tamanho do diretorio ou arquivo
  TAMANHO_DIR=`/usr/bin/du -s $DIR_BACKUP |awk '{print $1}'`

  # Define o tamanho dos volumes
  # 1GB
  TAMANHO_VOL=1048576

  # Define quantidade de volumes
  QTDE_VOL=`echo "$TAMANHO_DIR/$TAMANHO_VOL+1" | /usr/bin/bc`

  # Define nomes dos volumes
  if [ $QTDE_VOL -gt 1 ]; then
    for I in $(seq 1 $QTDE_VOL)
    do
      NOME_VOL_TAR=$NOME_VOL_TAR$(printf " -f
$DIR_TRABALHO/"$NOME_ARQUIVO"_parte_$I.tar")
      NOME_VOL_TAR2=$NOME_VOL_TAR2$(printf  "
$DIR_TRABALHO/"$NOME_ARQUIVO"_parte_$I.tar")
      NOME_VOL_COMP=$NOME_VOL_COMP$(printf  "
$DIR_TRABALHO/"$NOME_ARQUIVO"_parte_$I.tar.gz")
    done
  else
    NOME_VOL_TAR=$(printf " -f $DIR_TRABALHO/$NOME_ARQUIVO.tar")
    NOME_VOL_TAR2=$(printf   " $DIR_TRABALHO/$NOME_ARQUIVO.tar")
    NOME_VOL_COMP=$(printf   " $DIR_TRABALHO/$NOME_ARQUIVO.tar.gz")
  fi

#echo $NOME_VOL_TAR
#echo $NOME_VOL_TAR2
#echo $NOME_VOL_COMP

  echo "`date +"%d/%m/%Y-%T"` $BKPTAG    -- Gerando     volumes ::
$DIR_BACKUP" 
  /bin/tar -c -M -L $TAMANHO_VOL $NOME_VOL_TAR $DIR_BACKUP --totals
  RESULT=$?
  if [ $RESULT -ne 0 ]; then
    echo "`date +"%d/%m/%Y-%T"` $BKPTAG       -- Erro $RESULT ao gerar
volumes :: $DIR_BACKUP"
  fi

  echo "`date +"%d/%m/%Y-%T"` $BKPTAG    -- Compactando volumes ::
$DIR_BACKUP"
  for FILE in $NOME_VOL_TAR2
  do
    /bin/gzip $FILE
    RESULT=$?
    if [ $RESULT -ne 0 ]; then
      echo "`date +"%d/%m/%Y-%T"` $BKPTAG       -- Erro $RESULT ao compactar
volumes :: $FILE"
    fi
  done

  echo "`date +"%d/%m/%Y-%T"` $BKPTAG    -- Gravando    volumes ::
$DIR_BACKUP"
  for FILE in $NOME_VOL_COMP
  do
    /usr/sbin/save $FILE
    RESULT=$?
    if [ "$RESULT" -ne 0 ]; then
      echo "`date +"%d/%m/%Y-%T"` $BKPTAG       -- Erro $RESULT ao gravar
arquivo $FILE"
    else
      echo "`date +"%d/%m/%Y-%T"` $BKPTAG    -- Removendo arquivo compactado
$FILE"
      /bin/rm -f $FILE
      RESULT=$?
      if [ $RESULT -ne 0 ]; then
        echo "`date +"%d/%m/%Y-%T"` $BKPTAG       -- Erro $RESULT ao remover
arquivo..."
      fi
    fi
    /bin/sleep 10
  done
}

Com isto, basta montar o script que lê os diretórios e passar como parâmetro
o caminho dos arquivos ou diretórios que deverão ser gravados.

Abraço!
Ricardo Brambila 


-----Mensagem original-----
De: Ricardo Brambila [mailto:[EMAIL PROTECTED] 
Enviada em: quinta-feira, 12 de julho de 2007 12:36
Para: '[email protected]'
Assunto: Problemas com backup de arquivos maiores que 2GB

Olá, pessoal!

Tenho um script que faz backup de arquivos de usuários.
Durante o processo, o script faz o mapeamento do diretório, executa o
comando tar com a opção -z para compactar, e grava na fita utilizando um
software chamado Legato.
Acontece que o Legato tem uma limitação de 2GB para o tamanho máximo de cada
arquivo a ser gravado na fita.
O que eu preciso é gerar os arquivos usando o comando tar (ou outro
similar), mas "quebrar" esse arquivo em partes menores, de no máximo 2GB.
Isto é possível? Alguém teria alguma dica?

Obrigado.
Ricardo.


---------------------------------------------------------------------------
Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utilização da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a