Como posso verificar se o rsync transferiu arquivos ou não?

1

Eu uso o rsync (cygwin) para transferir arquivos entre o servidor e o meu PC.

O rsync é executado a cada 2 minutos e, às vezes, há alguns arquivos para transferir, às vezes não. Eu preciso executar algumas ações, mas somente se os arquivos foram transferidos do servidor para o PC.

Como sei se os arquivos foram transferidos ou não?

P.S. Eu tentei usar os códigos de saída do rsync, mas ele retorna 0 em ambos quando os arquivos são transferidos e quando eles não são.

    
por temur_p 01.07.2016 / 08:51

3 respostas

3
rsync -rtv <source> <dest> | wc -l

Se o resultado for mais de 4 algo mudou

    
por 01.07.2016 / 10:19
1

Eu uso a opção

 rsync ....  --log-file=/path/to/log/file

Isso adiciona ao arquivo de log, para que você possa descobrir se alguma coisa foi transferida e, em caso afirmativo, o que exatamente, até muito mais tarde do que quando o backup ocorreu.

    
por 01.07.2016 / 12:47
0

rsync --stats

Você pode usar a opção --stats ou --info=stats2 eventualmente filtrando com um grep.

  rsync -avr ORIG DEST  --stats | grep "Number of created files"

Number of created files: 14

No manual de rsync você pode ler

--stats
This tells rsync to print a verbose set of statistics on the file transfer, allowing you to tell how effective rsync’s delta-transfer algorithm is for your data. This option is equivalent to --info=stats2 if combined with 0 or 1 -v options, or --info=stats3 if combined with 2 or more -v options.

Mais notas:
 Eu sugiro que você use um arquivo de log como proposto pela MariusMatutiae caso você tenha a curiosidade para ver quais arquivos foram transferidos.
Para o filtro grep , você pode escolher cada linha que achar interessante:

  • Exemplo de saída com algum arquivo transferido:

    Number of files: 15 (reg: 14, dir: 1)
    Number of created files: 14 (reg: 14)
    Number of deleted files: 0
    Number of regular files transferred: 14
    Total file size: 280,860 bytes
    Total transferred file size: 280,860 bytes
    Literal data: 280,860 bytes
    Matched data: 0 bytes
    File list size: 0
    File list generation time: 0.001 seconds
    File list transfer time: 0.000 seconds
    Total bytes sent: 281,842
    Total bytes received: 285

  • O mesmo comando sem nenhum arquivo transferido:

    Number of files: 15 (reg: 14, dir: 1)
    Number of created files: 0
    Number of deleted files: 0
    Number of regular files transferred: 0
    Total file size: 280,860 bytes
    Total transferred file size: 0 bytes
    Literal data: 0 bytes
    Matched data: 0 bytes
    File list size: 0
    File list generation time: 0.001 seconds
    File list transfer time: 0.000 seconds
    Total bytes sent: 357
    Total bytes received: 12

por 08.07.2016 / 17:37