Estou usando o rsync para fazer um backup. Esta é minha linha de comando:
sudo rsync -avuh --delete --stats --log-file=$LOGFILE --exclude-from $EXCLUDE $SOURCE $DEST
Isso funciona na maior parte. Porém, hoje me deparei com um cenário em que apenas alterei os atributos de um arquivo para torná-lo executável. Por curiosidade, executei o rsync, mas ele não mostrou o arquivo sendo copiado para o destino.
O conteúdo do arquivo é exatamente o mesmo e esta é a saída estatística:
Arquivo: `Projetos/simpleFlash.py' Tamanho: 706 Blocos: 8 Bloco IO: 4096 arquivo normal Dispositivo: 802h/2050d Inode: 56961 Links: 1 Acesso: (0755/-rwxr-xr-x) Uid: ( 1000/ pi) Gid: ( 1000/ pi) Acesso: 26/03/2015 17:13:29.970428613 -0400 Modificar: 17/02/2015 00:16:44.558033934 -0500 Alteração: 19/05/2015 13:53:28.401164123 -0400 Aniversário: -
Os mtimes são iguais, mas ctime é diferente. Como faço para o rsync observar as alterações nos atributos do arquivo, para arquivos com o mesmo mtime?
especificações: rsync 3.0.9 FS: ext4 kernel Linux: 3.18.11+
Responder1
Conforme declarado na rsync(1)
página de manual:
O Rsync encontra arquivos que precisam ser transferidos usando um algoritmo de “verificação rápida” (por padrão) que procura arquivos que mudaram de tamanho ou na hora da última modificação. Quaisquer alterações nos outros atributos preservados (conforme solicitado pelas opções) são feitas diretamente no arquivo de destino quando a verificação rápida indica que os dados do arquivo não precisam ser atualizados.
Isso significa que enquanto você solicitar rsync
a transferência dos atributos, eles serão atualizados. Você disse que o atributo que faltava eram permissões, então adicione -p
ou --perms
à linha de comando e pronto.