Como espelhar uma estrutura de sistema de arquivos, mas sem qualquer conteúdo

1

Isso é necessário para fins de backup. Apenas o índice de toda a estrutura do fs.
Eu posso fazer essa imagem com um plugin FAR. Como o mesmo pode ser alcançado no GNUverso?

Espelhamento significa cópia perfeita, ou seja, tstamps, attribs, octetos, etc.

    
por xelvet 17.12.2013 / 13:52

3 respostas

2

Para sistemas de arquivos XFS , você pode usar xfs_metadump e xfs_mdrestore que será copiado os metadados do sistema de arquivos, mas não seu conteúdo, para outro sistema de arquivos (preferencialmente vazio).

Explicação

xfs_metadump é uma ferramenta de depuração que copia os metadados de um sistema de arquivos XFS para um arquivo. Ele deve ser usado apenas para copiar sistemas de arquivos desmontados, sistemas de arquivos montados somente para leitura ou sistemas de arquivos congelados (consulte xfs_freeze (8) ). Caso contrário, o dump gerado pode ser inconsistente ou corrompido.

xfs_metadump não altera o sistema de arquivos de origem de nenhuma maneira. A imagem de destino é um arquivo contíguo (não esparso) contendo todos os metadados e índices do sistema de arquivos de onde os blocos foram copiados. O conteúdo dos arquivos parecerá cheio de zeros.

xfs_metadump precisa ser executado com -o para desativar a ofuscação de nomes de arquivos e atributos estendidos.

O xfs_mdrestore restaura uma imagem de metadados XFS para uma imagem do sistema de arquivos. Ele não deve ser usado para restaurar metadados em um sistema de arquivos existente, a menos que você esteja completamente certo de que o alvo pode ser destruído.

Exemplo de uso

# Create the destination filesystem
# 64 MBs could be enough for a source of 72 GBs with a couple of files.
# Use more to be safe (and check the destination afterwards).
dd if=/dev/zero of=/tmp/dst.dsk bs=1M count=0 seek=64
mkfs -t xfs /tmp/dst.dsk

# Copy. Destination can be destroyed!
xfs_metadump -o /dev/disk/by-label/src - | xfs_mdrestore - /tmp/dst.dsk

# Mount
mkdir /tmp/dst
mount -t xfs -o loop /tmp/dst.dsk /tmp/dst
ls -l /tmp/dst

Com relação ao conteúdo dos arquivos, isso é o que od -x imprime para um dos arquivos:

0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
3221376000
    
por 25.12.2013 / 21:03
2
find $PATH -type d -exec mkdir -p '/$BACKUP_PATH/{}' ';' \
                   -exec touch --reference='{}' '/$BACKUP_PATH/{}' ';' \
                   -exec chown --reference='{}' '/$BACKUP_PATH/{}' ';' \
                   -exec chmod --reference='{}' '/$BACKUP_PATH/{}' ';'

find $PATH -type f -exec touch --reference='{}' '/$BACKUP_PATH/{}' ';' \
                   -exec chown --reference='{}' '/$BACKUP_PATH/{}' ';' \
                   -exec chmod --reference='{}' '/$BACKUP_PATH/{}' ';'

Para mais detalhes sobre a opção --reference , consulte a documentação do toque em , chown e chmod do coreutils (o padrão na maioria das distribuições Linux).

    
por 17.12.2013 / 19:32
0

Assim?

ls -Ral /$PATH > /backup_location/fs_index.txt

É claro que você pode adicionar data etc no final do arquivo txt!

    
por 17.12.2013 / 17:19