gzip seleciona diretórios em arquivos separados

1

Como eu faria para compactar uma lista de diretórios em arquivos separados? Eu li as soluções que apenas arquivam todos os diretórios dentro de um determinado diretório , mas há alguns que eu quero pular. Talvez uma maneira mais fácil seria definir os diretórios que NÃO quero arquivar.

Isso é para fins de backup, portanto, se o arquivamento incremental puder ser facilmente implementado, isso seria uma grande vantagem. Infelizmente, o rsync não é uma opção para mim.

Como alternativa, um script como o AutoMySQLBackup , mas para diretórios, seria uma excelente recompensa para mim.

    
por bskool 01.09.2015 / 09:02

1 resposta

1

Eu inventei isso. Ele procura dentro de um diretório definido, arquiva todos os diretórios dentro de seus próprios arquivos separados e fornece a eles um nome baseado no nome do diretório de origem & data da execução do script.

#!/bin/bash

#START
TIME='date +%Y-%m-%d_%Hh%Mm'     # Append date and time to backup file
SRCDIR=/srv                      # Location of directories to backup
DESDIR=/srv/backup               # Destination of backup files
EXCLUDE=exclude.txt  # File which defines what to exclude from archiving

for dir in $SRCDIR/*/
do
  base=$(basename "$dir")
  tar -cpzf $DESDIR/$base-$TIME.tar.gz $dir
done
#END

O problema com isso? A menos que o diretório de destino esteja fora do diretório de origem, ele continuará arquivando a pasta de backup onde o arquivo / s anterior já foi criado; como a variável $EXCLUDE não está sendo usada.

    
por 01.09.2015 / 11:38