Como faço para sincronizar as permissões de arquivo (chmod + x) com o rsync?

5

Estou tendo problemas para sincronizar as permissões de arquivo com o rsync. Estou tentando sincronizar minha pasta / home / bin com a pasta / home / bin em uma máquina remota. O problema é que, quando eu escrevo um novo script e o faço executável com 'chmod + x', depois de executar o rsync, o arquivo volta a ser inexecutável.

Se eu usar --perms, quando eu atualizar as permissões de arquivo na máquina remota e, em seguida, usar rsync na máquina host, as permissões de arquivo não serão atualizadas na máquina host e na máquina remota elas serão revertidas .

Existe uma maneira de sincronizar corretamente as permissões de arquivo?

UPDATE : esqueci de postar o script que uso:

#!/bin/bash                                                                     

rsync -e ssh -avz --recursive --progress --update --perms /home/bin [email protected]:/home                                                                              
rsync -e ssh -avz --recursive --progress --update --perms [email protected]:/home/bin /home
    
por Eddy 28.06.2011 / 16:34

1 resposta

2

Acho que seu problema básico aqui é que rsync não é uma boa ferramenta para sincronização bidirecional. Eu recomendaria alguma solução conceitualmente diferente, caso contrário você continuará a se debater.

  • Você pode pesquisar usando Unison . Ele funciona como rsync , mas é projetado para sincronização de dois dígitos.
  • Melhor ainda, procure usar um sistema de controle de origem como git . Isso é particularmente útil para coisas como arquivos de configuração e seus scripts pessoais. Cada máquina em que você os utiliza terá um checkout separado, e o controle de versão cuida para garantir que você sempre tenha as alterações mais recentes por hora, incluindo a mesclagem de várias alterações diferentes, em vez de apenas ter os dados corrompidos de qualquer fonte.
por 28.06.2011 / 16:54