Em termos de facilidade de transferência, sugiro rsync
.
Vantagens
- Um comando para fazer tudo, um comando para encontrá-los
- Restartable quando a rede cai no meio da transferência
- Menos esforço - você não precisa dividir / tar e depois transferir / untar
- O servidor de origem pode se concentrar na leitura de arquivos, deixando os servidores de destino para lidar com gravações (menos conflitos potenciais de I / O de sistema de arquivos, atualização de metadados, etc.)
Desvantagens
- Você descarta todo o esforço que fez até agora
- É uma solução diferente da que você considerou
- Requer uma conexão direta entre os dois sistemas (bem, na verdade isso não acontece, mas você precisa fornecer um túnel ssh)
Soluções propostas
-
todos os arquivos na árvore de diretórios
cd /path/to/top/source/directory rsync -avPR -e ssh . remoteuser@remotehost:/path/to/top/destination/directory
-
nomes de arquivos listados em um arquivo
cd /path/to/top/source/directory rsync -avPR -e ssh --files-from=/path/to/filelist . remoteuser@remotehost:/path/to/top/destination/directory
Esta segunda solução requer que os nomes dos arquivos sejam listados em relação ao topo do diretório de origem, porque os nomes dos arquivos obtidos a partir do arquivo filelist também serão aplicados no sistema de arquivos de destino.
Se você for fazer um desses como root, você certamente precisará copiar um certificado ssh
do servidor de origem para o destino, para que você possa efetuar login como o usuário root.