No modo de execução seca, o arquivo de log não contém arquivos regulares alterados / atualizados e nenhuma exclusão. Apenas contém diretórios alterados e criados. No entanto, quando executado sem execução a seco, o arquivo de log contém todos os tipos de alterações.
Um pequeno exemplo:
Ao executar o comando
rsync -a --delete-delay --progress --itemize-changes --stats --dry-run --log-file="/tmp/rsync-dry.txt" /tmp/mySource/ /tmp/myDest/
o arquivo de log é assim (3 itens, todos relacionados a diretórios):
2015/08/26 17:18:04 [5812] building file list
2015/08/26 17:18:04 [5812] .d..t...... ./
2015/08/26 17:18:04 [5812] .d..t...... sub1/
2015/08/26 17:18:04 [5812] cd+++++++++ sub2/
2015/08/26 17:18:04 [5812] Number of files: 11 (reg: 8, dir: 3)
2015/08/26 17:18:04 [5812] Number of created files: 5 (reg: 4, dir: 1)
2015/08/26 17:18:04 [5812] Number of deleted files: 4 (reg: 3, dir: 1)
2015/08/26 17:18:04 [5812] Number of regular files transferred: 6
...
Sem funcionamento a seco, ou seja,
rsync -a --delete-delay --progress --itemize-changes --stats --log-file="/tmp/rsync-wet.txt" /tmp/mySource/ /tmp/myDest/
o arquivo de log é assim (13 itens):
2015/08/26 17:19:44 [5837] building file list
2015/08/26 17:19:44 [5837] .d..t...... ./
2015/08/26 17:19:44 [5837] >f.st...... Bbb.txt
2015/08/26 17:19:44 [5837] >f+++++++++ Ccc.txt
2015/08/26 17:19:44 [5837] .d..t...... sub1/
2015/08/26 17:19:44 [5837] >f.st...... sub1/Fff.txt
2015/08/26 17:19:44 [5837] >f+++++++++ sub1/Ggg.txt
2015/08/26 17:19:44 [5837] cd+++++++++ sub2/
2015/08/26 17:19:44 [5837] >f+++++++++ sub2/Iii.txt
2015/08/26 17:19:44 [5837] >f+++++++++ sub2/Jjj.txt
2015/08/26 17:19:44 [5837] *deleting sub3/Kkk.txt
2015/08/26 17:19:44 [5837] *deleting sub3/
2015/08/26 17:19:44 [5837] *deleting Ddd.txt
2015/08/26 17:19:44 [5837] *deleting sub1/Hhh.txt
2015/08/26 17:19:44 [5837] Number of files: 11 (reg: 8, dir: 3)
2015/08/26 17:19:44 [5837] Number of created files: 5 (reg: 4, dir: 1)
2015/08/26 17:19:44 [5837] Number of deleted files: 4 (reg: 3, dir: 1)
2015/08/26 17:19:44 [5837] Number of regular files transferred: 6
...
que reflete com precisão o que o rsync está fazendo.
Estou perplexo porque eu acreditava que a saída do rsync com e sem --dry-run deveria ser a mesma. (Caso contrário, o que seria dry-run bom?) O problema refere-se apenas ao arquivo de log. A saída do terminal está sempre completa, com ou sem --dry-run.
Eu tentei diferentes opções, por exemplo --rtgopl ou -rtgo em vez de -a, -v em vez de -i. Eu tentei rearranjar as bandeiras. Eu tentei adicionar opções como -c ou --inplace. Não ajudou. Também não importa se o destino é outro caminho local (como no exemplo), uma unidade USB ou um destino remoto via ssh.
O que eu fiz errado? Ou o rsync deveria funcionar assim?
(Eu estou usando o Ubuntu 14.04, rsync versão 3.1.0.)