A principal diferença entre essas ferramentas é como elas copiam arquivos.
scpbasicamente lê o arquivo de origem e o grava no destino. Ele executa uma cópia linear simples, localmente ou através de uma rede.
rsynctambém copia arquivos localmente ou pela rede. Mas emprega um algoritmo de transferência delta especial e algumas otimizações para tornar a operação muito mais rápida. Considere a ligação.
rsync A host:B
rsyncirá verificar o tamanho dos arquivos e os carimbos de data / hora de modificação de A e B e pulará qualquer outro processamento, se eles corresponderem.
Se o arquivo de destino B já existir, o algoritmo de transferência delta garantirá que apenas as diferenças entre A e B sejam enviadas pela conexão.
rsyncirá gravar dados em um arquivo temporário T , e em seguida, substituir o arquivo de destino B com T para tornar o update "atômica" para processos que possam estar usando B .
Outra diferença entre eles diz respeito à invocação. rsyncpossui uma infinidade de opções de linha de comando, permitindo que o usuário ajuste seu comportamento. Ele suporta regras de filtro complexas, é executado em modo batch, modo daemon, etc., scppossui apenas algumas opções.
Em resumo, use scppara as tarefas do dia a dia. Comandos que você digita de vez em quando em seu shell interativo. É mais simples de usar e, nesses casos, as rsyncotimizações não ajudam muito.
Para tarefas recorrentes, como crontrabalhos, use rsync. Como mencionado, em várias invocações, ele aproveitará os dados já transferidos, executando muito rapidamente e economizando recursos. É uma excelente ferramenta para manter dois diretórios sincronizados em uma rede.
Além disso, ao lidar com arquivos grandes, use rsynccom a -Popção Se a transferência for interrompida, você poderá retomar onde parou, reemitindo o comando. Veja a resposta de Sid Kshatriya .