Como obtenho o rsync para exluir um padrão de arquivo dentro de um bando?

1

Eu tenho um comando rsync que executo por hora via cron, e para evitar que ele tenha vários rsyncs simultâneos (caso o rsync da hora anterior ainda esteja em execução quando a próxima hora chegar) eu o envolvi em um bando. Meu problema é que, apesar de especificar um filtro de exclusão que deve impedir que arquivos temporários sejam copiados, recebo a saída de mensagens 'arquivo desapareceu' que parece indicar que eles teriam sido copiados (se ainda estivessem presentes).

Aqui está meu script (sendo executado pelo cron):

#! /bin/sh
cd /blah/data
flock -n .rsync_lock -c "rsync $1 -xa --exclude '/tmp*' --ignore-existing jcr/datastore remote-host:data/jcr"

E aqui está a saída que recebo:

file has vanished: "/blah/data/jcr/datastore/tmp1774058021534447273.tmp"
file has vanished: "/blah/data/jcr/datastore/tmp2911761408812578785.tmp"
file has vanished: "/blah/data/jcr/datastore/tmp3744586075822519088.tmp"
file has vanished: "/blah/data/jcr/datastore/tmp6622502546708007750.tmp"
file has vanished: "/blah/data/jcr/datastore/tmp8270853704354349176.tmp"
rsync warning: some files vanished before they could be transferred (code 24) at main.c(977) [sender=2.6.9]

Por que meu filtro de exclusão não impede que esses arquivos sejam considerados para transferência? Isso é uma questão estranha de cotação?

    
por Trevor Horsfall 07.02.2013 / 06:50

1 resposta

0

Se você deseja excluir esses arquivos, seu padrão de exclusão precisa ser */tmp*.tmp .

    
por 07.02.2013 / 06:55