Mostrar apenas arquivos alterados durante a sincronização do ext4 para o NTFS


9

Gostaria que o rsync imprimisse arquivos modificados e excluídos. A opção detalhada (-v) imprime arquivos modificados, mas também a lista de subdiretórios, talvez porque os diretórios tocados sejam considerados modificados. Como sincronizo muitos arquivos de vários 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 "*/$"respostas, pois também excluiria novos diretórios.

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

E sempre que imprime a lista de todos os diretórios:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDIT: Ok, após alguns testes intensivos. Ele não imprime todos os diretórios ao sincronizar de uma partição ext4 para ext4 e de NTFS para NTFS. Isso ocorre apenas quando sincronizando do ext4 para o NTFS. E opções -cou --omit-dir-timesnão alteram isso.

Respostas:


4

Você pode tentar usar o --omit-dir-timesswitch para ignorar os horários dos diretórios (consulte a página de manual do rsync).

Pessoalmente, acho que usar o -cswitch é a melhor maneira de garantir que apenas os arquivos cujo conteúdo foi alterado sejam exibidos na saída.

Observe que o uso -cdiminuirá o rsync.


Obrigado pela resposta. Acho difícil acreditar que não seja suportado nativamente, pelo menos sem perder o desempenho (ou as opções). Só precisarei confiar que isso sincroniza tudo.
qox

Desculpe, minha edição mudou a pergunta após sua resposta.
Q12

1

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

Na página do manual rsync:

Em resumo: para dar aos arquivos de destino (antigos e novos) as permissões de origem, use --perms. Para conceder aos novos arquivos as permissões padrão de destino (mantendo os arquivos existentes inalterados), verifique se a opção --perms está desativada e use --chmod = ugo = rwX (que garante que todos os bits não mascarados sejam ativados). Se você quiser facilitar a digitação desse último comportamento, defina um alias popt para ele, como colocar essa linha no arquivo ~ / .popt (o seguinte define a opção -Z e inclui --no- g para usar o grupo padrão do diretório de destino):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX

1

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


Você ainda pode usar -ase quiser e adicionar --no-o --no-p --no-gpara omitir proprietário, grupo e permissões.
Ian Dunn

0

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

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

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

Eu estou supondo (quem sabe ..) dmask = 077 fez o truque, ou seja, 'drwx ---' em vez de 'drwxrwx'.


-1

Eu usei:

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

É uma corrida a seco (opção n). Remova essa opção para rsyncrealmente transferir arquivos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.