Mostra apenas arquivos alterados durante a sincronização de ext4 para NTFS

9

Gostaria que o rsync imprimisse arquivos modificados e excluídos. A opção detalhada (-v) imprime os arquivos modificados, mas também a lista de subdiretórios, talvez porque os diretórios tocados sejam considerados modificados. Como sincronizo muitos arquivos de muitos subdiretórios, é impossível ver as alterações reais.

Então, existe uma maneira de não imprimir diretórios usando o rsync?

Não estou procurando por grep -v "*/$" de respostas, pois isso também excluiria novos diretórios.

Comando que estou usando: rsync -avh --delete /media/data/src /media/data/bkp

E toda vez que ele imprime a lista de todos os diretórios:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDIT: Ok, depois de alguns testes intensivos ... Ele não imprime todos os diretórios ao sincronizar de uma partição ext4 para um ext4 e de NTFS para NTFS. Faz apenas quando a sincronização de ext4 para NTFS .. E as opções -c ou --omit-dir-times não mudam isso.

    
por qox 10.09.2012 / 16:59

5 respostas

0

Parece que foi um problema de permissão. Não tenho certeza por que .. Mas eu editei / etc / fstab para partições NTFS e agora funciona como esperado, ou seja, sem impressão de diretórios que não foram modificados.

Entrada antiga do fstab: usuários do ntfs-3g, padrões, exec, uid = 1000 0 0

Nova entrada fstab: Usuários de ntfs-3g, padrões, exec, uid = 1000, gid = 1000, dmask = 077, fmask = 137 0 0

Eu acho que (quem sabe ..) dmask = 077 fez o truque, ou seja, 'drwx ---' ao invés de 'drwxrwx'.

    
por 27.09.2012 / 11:03
4

Você pode tentar usar a opção --omit-dir-times para ignorar os tempos de diretório (dê uma olhada na página man do rsync).

Pessoalmente, acho que usar a opção -c é a melhor maneira de garantir que apenas os arquivos cujo conteúdo foi alterado apareçam na saída.

Observe que usar -c reduzirá a velocidade do rsync.

    
por 10.09.2012 / 17:32
1

Em vez de alterar o tipo de montagem, você também pode dizer ao rsync para ignorar permissões de arquivo ao copiar para um sistema de arquivos que não o suporta. O seguinte comando funciona para mim.

Na página do manual do rsync:

In summary: to give destination files (both old and new) the source permissions, use --perms. To give new files the destination-default permissions (while leaving existing files unchanged), make sure that the --perms option is off and use --chmod=ugo=rwX (which ensures that all non-masked bits get enabled). If you’d care to make this latter behavior easier to type, you could define a popt alias for it, such as putting this line in the file ~/.popt (the following defines the -Z option, and includes --no-g to use the default group of the destination dir):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX
    
por 20.03.2014 / 18:42
1

não use -a, ele contém -p -o -g.

    
por 14.10.2014 / 07:39
-1

Eu usei:

sudo rsync -auzhni --progress --omit-dir-times --no-o  src_dir/ dst_dir 

É uma execução a seco (opção n ). Remova essa opção para que rsync transfira arquivos.

    
por 19.01.2014 / 12:41

Tags