linha de comando do Linux para criar um arquivo de log para rsync

1

Estou tentando criar um arquivo de texto de log depois de fazer um rsync. Eu tentei usar uma linha de comando: rsync -av / source / / dest / > log.txt O arquivo de texto que foi criado mostra apenas os nomes de arquivos "diferentes" entre a pasta de origem & a pasta de destino, que é próxima do que eu quero.

Existe uma maneira de criar um arquivo de log que agrupa os arquivos "diferentes" em arquivos que foram modificados & criado?

Obrigado.

    
por kasrus 18.11.2015 / 03:29

2 respostas

3

Use a opção --log-file.

rsync -av /source/ /dest/ --log-file=mylog.log
    
por 18.11.2015 / 04:08
0

A ideia principal
Para qualquer moderno rsync , é possível usar --info em vez de -v , por exemplo:

rsync --info=COPY2,DEL2,NAME2,BACKUP2,REMOVE2,SKIP2 -a source/ dest/ > log.txt
# or eventually with --log-file=mylog.txt

Algumas operações adicionais

A saída / arquivo resultante será semelhante a

file1.zip is uptodate
file2.odt
Dir1/
Dir1/file3.txt

Em seguida, você pode usar grep para filtrar os resultados, por exemplo, com algo como

grep    'is uptodate' mylog.txt | sed 's/is uptodate//g' > Already_Uptodate.txt
grep -v 'is uptodate' mylog.txt                          > Updated_Now.txt

Na primeira linha eu deletei a string 'uptodate' com sed para ter uma saída mais limpa. Isso abre o problema se você tem um arquivo chamado ' é uptodate ' é claro :-) Ele tem que ser tratado de uma maneira diferente ...

Algumas palavras mais

Você pode selecionar as informações e o nível de informações que deseja para cada opção

In a modern rsync, the -v option is equivalent to the setting of groups of --info and --debug options.

You can choose to use these newer options in addition to, or in place of using --verbose, as any fine-grained settings override the implied settings of -v.

Both --info and --debug have a way to ask for help that tells you exactly what flags are set for each increase in verbosity.

A lista obtida com rsync --info=help é informada abaixo enquanto a de rsync --debug=help não é relatada:

Use OPT or OPT1 for level 1 output, OPT2 for level 2, etc.; OPT0 silences.  

BACKUP     Mention files backed up
COPY       Mention files copied locally on the receiving side
DEL        Mention deletions on the receiving side
FLIST      Mention file-list receiving/sending (levels 1-2)
MISC       Mention miscellaneous information (levels 1-2)
MOUNT      Mention mounts that were found or skipped
NAME       Mention 1) updated file/dir names, 2) unchanged names
PROGRESS   Mention 1) per-file progress or 2) total transfer progress
REMOVE     Mention files removed on the sending side
SKIP       Mention files that are skipped due to options used
STATS      Mention statistics at end of run (levels 1-3)
SYMSAFE    Mention symlinks that are unsafe

ALL        Set all --info options (e.g. all4)
NONE       Silence all --info options (same as all0)
HELP       Output this help message

 Options added for each increase in verbose level:
1) COPY,DEL,FLIST,MISC,NAME,STATS,SYMSAFE
2) BACKUP,MISC2,MOUNT,NAME2,REMOVE,SKIP

Caso o rsync (client-server) não seja suficiente moderno você tem que usar mais v e mais esforço. Na verdade, você pode usar -vv , -vvv , -vvvv aumentando cada vez na verbosidade, mas a análise será mais complexa.

More than two -v options should only be used if you are debugging rsync

Uma palestra realmente útil pode ser man rsync na seção onde fala sobre as opções -v e especialmente --info=FLAGS .

    
por 18.11.2015 / 11:16