Como faço para tar / gzip e excluo diretórios com segurança?

3

Como devo tar / gzip e excluir arquivos com segurança?

Background : Estamos com pouco espaço em disco em um computador Ubuntu (Hardy Heron), e quero tar / gzip, verificar se funcionou e excluir alguns diretórios Eu não estou mais usando. Eu estou pensando em fazer um gzip tar para cada diretório que eu estou me livrando. (Os gzips serão para o disco rígido, não para uma fita magnética)

Eu me deparei com uma solução que deveria ser segura, mas não é em unix.com . Não é seguro porque nas versões atuais do tar, --remove-files podem excluir arquivos mesmo que o arquivo não seja criado. (Reconhecido como um bug em este e-mail )

Eu também notei uma opção --compare , mas diz que "ignora arquivos no sistema de arquivos que não possuem membros correspondentes no arquivo".

Além disso, o gzipping interfere na capacidade do tar de verificar os arquivos existentes?

    
por Andrew Grimm 11.11.2009 / 00:14

2 respostas

3

Você pode configurar o rsync para --delete-after transferir. Também inclui muitas outras opções - ou seja, você pode evitar completamente a etapa tar / gzip. Use rsync para fazer backup de suas coisas e excluir a cópia local. Para algumas instruções detalhadas, consulte scrounge.org e mikerubel.org e isto .

    
por 11.11.2009 / 00:25
1

Eu uso este script para uso próprio:

#!/bin/ksh
#
# @(#)$Id: save.sh,v 2.2 2007/09/01 23:41:23 jleffler Exp $"
#
# Compress directories to save space

case $(id | sed 's/^uid=\([0-9][0-9]*\)(.*//') in
0)  echo "$(basename $0 .sh): cannot run safely as root!" 1>&2
    exit 1;;
esac

for d in ${*:-'pwd'}
do
    (
    set -e
    echo $d
    cd $d
    b='basename $d'
    chmod 755 .
    [ ! -d Safe ] && mkdir Safe
    chmod 755 Safe
    # GNU Tar Only!
    find . -type f -print | grep -v '^./Safe' | tar -czf Safe/$b.tgz -T -
    chmod 444 Safe/$b.tgz
    chmod 555 Safe
    (set +e; rm -fr 'pwd' 2>/dev/null ; exit 0)
    chmod 755 Safe
    mv Safe/* .
    rmdir Safe
    chmod 555 .
    )
done

Note que 'root' pode deletar diretórios mesmo quando o dono não pode - então ele se recusa a deixar 'root' rodá-lo. Experimente em uma cópia do seu diretório antes de arriscar em algo importante. Estou feliz com isso - você pode preferir outra coisa.

Um dia, vou fazer funcionar com 'bzip2' ou outros compressores.

    
por 11.11.2009 / 00:48

Tags