Rsync ssh include & exclude

3

Aqui está meu script de shell rsync atual

upload.sh

SOURCEDIR=/Users/thomas/sites/dreamhost/
DESTDIR=******@reggi.com:/home/thomasreggi/sites/
##rsync -avzL --delete --include '*/' --include-from=list.txt --exclude '*' $DESTDIR $SOURCEDIR

SOURCEDIR=/Users/thomas/sites/dreamhost/
DESTDIR=******@reggi.com:/home/thomasreggi/sites/
rsync -avzL --delete --exclude=".DS_Store" --exclude-from=list.txt $SOURCEDIR $DESTDIR

list.txt

reggi.com/assets/dailybooth/img/original/
reggi.com/assets/dailybooth/img/spritesheets/
reggi.com/assets/dailybooth/sprite.css
reggi.com/assets/thumb/cache/
reggi.com/wordpress/wp-content/plugins/
reggi.com/wordpress/wp-content/uploads/

O que estou tentando realizar aqui é um download rsync dos diretórios da lista e, em seguida, um upload de tudo, exceto os diretórios da lista. O segundo script funciona e evita os arquivos da lista, mas o primeiro não faz o que eu quero completamente. Eu comecei a trabalhar se eu acrescentar ** ao final dos diretórios, mas não tenho certeza se isso funciona para o segundo script. Eu estou procurando a melhor maneira de fazer isso.

    
por ThomasReggi 10.10.2011 / 04:50

1 resposta

2

Se você tiver uma versão recente do rsync (pelo menos 2.6.7), poderá usar reggi.com/assets/dailybooth/img/original/*** em list.txt e assim por diante. Então ambos os seus comandos irão funcionar. Eu não acho que haja um jeito menos desajeitado. Você pode querer adicionar --prune-empty-dirs ao primeiro comando.

Eu questiono seu fluxo de trabalho geral. É bastante estranho copiar diretórios específicos em uma direção e o resto na outra direção. Recomendo organizar conteúdo idêntico em ambos os lados e executar a sincronização bidirecional sempre que você fizer uma alteração em qualquer um dos lados. A ferramenta escolhida para a sincronização bidirecional é Unison .

    
por 11.10.2011 / 00:20

Tags