Como omitir diretório do backup

0

Estou tentando editar um script de backup para que funcione para mim. Meu problema é que, se eu definir o caminho do diretório que desejo fazer backup, ele também fará backup do diretório que contém os backups :)

O script: link

atualmente a maior parte do meu espaço alocado está em /home

root@encorepvp:/home/jo# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        20G  2.3G   16G  13% /
devtmpfs         32G  4.0K   32G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            6.3G  1.5M  6.3G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             32G  4.0K   32G   1% /run/shm
none            100M     0  100M   0% /run/user
/dev/md3        1.8T   29G  1.7T   2% /home

Eu tenho um diretório em /home chamado backups , portanto, estou tentando omitir esse diretório do backup usando -x /home/backups Como eu implementaria isso?

    
por JoeM 03.05.2015 / 19:41

1 resposta

1

I have a dir in /home called backups so I am looking to omit that directory from the backup using say -x /home/backups. How would I go about implementing this?

Para implementar isso, você procuraria o script e descubra as linhas relevantes para fazer o backup do diretório:

# Compress tables and files
cd $TARGET_DIR
tar -czf $BACKUP_DIR/backup.incoming/$backup_filename -C $BACKUP_DIR/backup.incoming/ mysql_dump.sql $TARGET_DIR

Você descobriria que ele usa tar , então você procuraria a página do manual para tar e determine que a opção excluir é --exclude em vez de x . Você aplicaria as alterações no arquivo e testaria.

Em vez de excluir um diretório fixo, faria sentido - no contexto do script - usar a variável que declara o diretório de backups, $BACKUP_DIR .

tar -czf $BACKUP_DIR/backup.incoming/$backup_filename -C $BACKUP_DIR/backup.incoming/ --exclude $BACKUP_DIR mysql_dump.sql $TARGET_DIR

Enquanto você editava o script, seria ainda melhor se você modificasse (de maneira trivial) grandes partes do script para que ele pudesse lidar com nomes de diretórios contendo espaço em branco e outras estranhezas. Você faria isso citando a maioria das variáveis. Por exemplo, a seção tar se tornaria isso:

# Compress tables and files
cd "$TARGET_DIR"
tar -czf "$BACKUP_DIR/backup.incoming/$backup_filename" -C "$BACKUP_DIR/backup.incoming/" --exclude "$BACKUP_DIR" mysql_dump.sql "$TARGET_DIR"
    
por 03.05.2015 / 20:18

Tags