tar backup script zsh

1

Tentar configurar um cronjob executou o script tar no site de backup (sem pasta .git e setup) todas as noites e fez o upload do arquivo com carimbo de hora para o Dropbox.

Isso me dá um tempo difícil, pois o arquivo é criado junto com tudo nele, parece que o sinalizador de exclusão não funciona por algum motivo agora. Talvez seja o personagem do zsh escapar da questão, não tenho certeza, ainda está aprendendo. Por favor ajude ..

#!/bin/zsh

DATE='date +%d-%m-%Y---%H-%M-%S'
FILE=backup-$DATE.tar.bz2
DROPBOX=/home/pentago/appz/bin/dropbox.py 
TARGET=/home/pentago/public_html/
DESTINATION=/home/pentago/Dropbox/Backups
EXCLUDED={setup,.git*}


tar -cpPf $FILE --exclude=$EXCLUDED $TARGET{*,.*}
    
por dzhi 19.02.2013 / 11:20

2 respostas

2

Existem alguns problemas no seu script. Você precisa adicionar a opção j a tar para criar arquivos bzip2. Eu acredito que os comandos exclude são ignorados porque você está adicionando explicitamente todos os arquivos em seu alvo para a lista de arquivos imput. Você não precisa que $TARGET/* simplesmente $TARGET faça. Por fim, o blob excluído provavelmente está sendo expandido em seu diretório atual, não no diretório de destino.

Tente algo assim:

#!/bin/zsh

DATE='date +%d-%m-%Y---%H-%M-%S'
FILE=backup-$DATE.tar.bz2
DROPBOX=/home/pentago/appz/bin/dropbox.py 
TARGET=/home/pentago/public_html/
DESTINATION=/home/pentago/Dropbox/Backups



tar -cjpPf $FILE --exclude=setup --exclude=.git $TARGET
    
por 19.02.2013 / 12:00
0

Você realmente deveria estar usando o git-archive para isso.

git archive -o $FILE HEAD

para evitar incluir setup , você precisará definir o atributo export-ignore . Veja man gitattributes e man git-archive (cargas de exemplos). Observe que isso pressupõe que a configuração está marcada, se não você não precisa fazer nada.

    
por 21.02.2013 / 13:53