
Preciso transferir alguns arquivos de log a cada hora para um armazenamento de log que todos os usuários possam acessar, e uso o rsync para fazer isso, mas o problema surge quando o arquivo de log é girado e compactado automaticamente, o rsync detecta que há um novo arquivo e ele também o transferiu, isso significa que no servidor de destino eu tenho:
example.log.2014-01-17--00
e
example.log.2014-01-17--00.gz
que é o mesmo arquivo de log, mas compactado com gzip -9.
esta é minha linha rsync, ela está incluída em um script:
rsync -rvzt --include "*/" --include "$pattern" --exclude "*" $directory [email protected]:/home/user/directory/$subdir/$basefilename
ele é executado a cada hora por um crontab e transfere todos os arquivos que correspondem a $pattern e $directory incluídos em um arquivo que contém caminhos e padrões que desejo transferir.
Então minha pergunta é se existe uma opção de rsync que eu não vi, ou se existe alguma possibilidade de fazer isso e como.
Desde já, obrigado.
Responder1
Você já pensou em usar o encaminhamento de rsyslog [1]?
Além disso, em [2], parece que a adição --exclude '*.gz'
deve resolver o seu problema. Por que você --exclude '*'
? Minha leitura disso seria que todos os arquivos são excluídos da sincronização.
[1]http://www.rsyslog.com/storing-and-forwarding-remote-messages/
[2]http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/