Você provavelmente deseja usar rsync
. Para que isso funcione, você precisa instalá-lo em ambas máquinas (se ainda não estiver instalado). Depois disso, simplesmente execute (como root):
rsync -avrHP root@source-host:/path/to/source-directory/ /path/to/destination
isso pressupõe que:
- Você executa o comando no host de destino. Se você quiser executá-lo no host de origem, basta remover a parte
root@source-host:
do primeiro argumento e adicionar um argumentoroot@destination-host:
ao segundo. Nota: não é possível executar o rsync com dois hosts remotos; apenas uma das extremidades pode ser um final "remoto". - Fazer login em ssh como root é possível. A coisa comum a fazer nos dias de hoje é desabilitar esse acesso, por motivos de segurança. No entanto, para que o rsync possa realmente copiar as permissões, ele precisa ser executado como root nas duas extremidades. Se estiver desativado, confira
/etc/ssh/sshd_config
, procurando porPermitRootLogin
. Se estiver definido comono
, mude parayes
e reiniciesshd
. Não se esqueça de desativá-lo novamente depois de copiar os arquivos! - Todos os usuários que possuem propriedade em arquivos no host de origem existem no host de destino. Caso contrário, alguns bits de permissão podem ser copiados incorretamente.
Note que você não precisa remover seus arquivos já copiados primeiro. O Rsync detectará que os arquivos existem, mas sincronizará as permissões. Se houver alguns arquivos que foram alterados desde que foram copiados, o rsync também sincronizará seu conteúdo.