Existe alguma razão para usar scp em vez de rsync?
62
Existe um motivo para usar em scpvez de rsync? Não vejo razão para usá-lo scpnovamente, rsyncfaz tudo o que scpfaz, com mais segurança (pode preservar links simbólicos etc.).
O @Shadur scp é prejudicial, pois substitui os arquivos de destino existentes por padrão. É o rsync, mas pelo menos permite limitar o possível dano com -u.
Gilles 'SO- stop be evil'
3
@ Gilles Como em qualquer ferramenta, você deve entender o que faz e como faz para usá-lo com segurança.
Alex Chamberlain
8
Nesse contexto, regular cpe rmseria considerado "prejudicial" - e se você definir "prejudicial" como "pode me ferrar se eu fizer algo estúpido", rsyncnão será menos prejudicial.
Shadur
11
Em sistemas sem rsyncinstalação, o uso rsync(obviamente) nem é possível.
Kusalananda
Respostas:
46
O scp fornece um método semelhante ao cp para copiar arquivos de uma máquina para uma máquina remota através de uma conexão SSH segura.
O rsync permite sincronizar pastas remotas.
Eles são programas diferentes e ambos têm seus usos. O scp é sempre seguro, enquanto o rsync deve passar pelo SSH para ser seguro.
Além disso, com certeza o rsync deve ser instalado na outra extremidade.
Ckhan
3
@ckhan, não, ele pode copiar sem ter nada instalado no outro lado, será apenas menos eficiente.
Mikebloch
2
Eu gosto da simplicidade do scp.
Alex Chamberlain
2
@mikebloch Como você faz isso? É um novo recurso? Apenas tentei isso usando a versão 3.0.9. e reclamou que não conseguia encontrar rsyncno controle remoto.
Alexios
11
@ mikebloch, ele deve ser instalado no servidor para fazer os cálculos da soma de verificação, o que pode adicionar muita carga de CPU ao servidor. É por isso que a maioria dos sites grandes não suporta e por que zsyncfoi criado como uma alternativa.
Psusi
19
Uma das principais coisas (que eu acho que ninguém mencionou) é que, se você estiver transferindo grandes quantidades de dados ou arquivos, e se a transferência for desconectada antes da conclusão, por qualquer motivo, o rsync pegará onde parou. Considerando que scp não.
Eu uso o scp se quiser transferir um ou dois arquivos ou diretórios. Vou ao rsync para obter dados de tamanho de vários GB.
Pode valer a pena acrescentar que o --partialsinalizador é útil ao transferir arquivos grandes. rsynccontinuará de onde parou no arquivo, em vez de iniciá-lo novamente.
Flup
Como o @Flup mencionou, o rsync não deixará nenhum arquivo em trânsito para você retomar, a menos que você use a opção --partial. Esses arquivos estão ocultos por padrão no diretório de destino. Você pode usar --partial-dir para colocar todos esses arquivos em um único diretório.
Lester Cheung #
Bem, rsync -vP username@host:/path/to/file .também farei isso. Veja esta resposta em Stackoverflow
O rsync pode transferir arquivos entre dois hosts remotos. De fato, rsync a host:bé equivalente a scp a host:b.
Brandizzi
Foi o que escrevi: o rsync pode transferir deltas entre hosts locais e remotos, mas o scp não se limita apenas a isso, pode transferir deltas entre dois hosts remotos. @brandizzi
rsynccompara os arquivos em cada extremidade e transfere apenas as partes alteradas dos arquivos alterados. Quando você transfere arquivos pela primeira vez, ele se comporta de maneira semelhante scp, mas, para uma segunda transferência, onde a maioria dos arquivos permanece inalterada, ele envia muito menos dados do que scp. Também é uma maneira conveniente de reiniciar transferências com falha - você apenas reemitirá o mesmo comando e ele continuará onde parou antes, enquanto scpcomeçará novamente do zero.
scpé mais simples de usar, pois leva menos argumentos. Eu pego o myselv usando scp em vez de rsyncapenas transferir um único arquivo. Provavelmente, estou com preguiça de definir um alias para rsync ... ;-)
Hmmm, por que é assim? rsync a host:bé equivalente a scp a host:b, mesmo número de argumentos.
Mikebloch 09/04
11
@mikebloch Duas letras a mais para digitar ... ;-) No passado, eu tinha que fornecer "-e ssh -a" para obter o resultado apropriado. Agora que "-e ssh" é o padrão, este pode ser um jogo diferente.
-u
.cp
erm
seria considerado "prejudicial" - e se você definir "prejudicial" como "pode me ferrar se eu fizer algo estúpido",rsync
não será menos prejudicial.rsync
instalação, o usorsync
(obviamente) nem é possível.Respostas:
O scp fornece um método semelhante ao cp para copiar arquivos de uma máquina para uma máquina remota através de uma conexão SSH segura.
O rsync permite sincronizar pastas remotas.
Eles são programas diferentes e ambos têm seus usos. O scp é sempre seguro, enquanto o rsync deve passar pelo SSH para ser seguro.
fonte
rsync
no controle remoto.zsync
foi criado como uma alternativa.Uma das principais coisas (que eu acho que ninguém mencionou) é que, se você estiver transferindo grandes quantidades de dados ou arquivos, e se a transferência for desconectada antes da conclusão, por qualquer motivo, o rsync pegará onde parou. Considerando que scp não.
Eu uso o scp se quiser transferir um ou dois arquivos ou diretórios. Vou ao rsync para obter dados de tamanho de vários GB.
fonte
--partial
sinalizador é útil ao transferir arquivos grandes.rsync
continuará de onde parou no arquivo, em vez de iniciá-lo novamente.rsync -vP username@host:/path/to/file .
também farei isso. Veja esta resposta em Stackoverflowrsync : transfere deltas (usando seu algoritmo de transferência Delta ) entre:
scp : transfere arquivos inteiros entre:
Resumo:
scp
pode transferir arquivos entre dois hosts remotos enquantorsync
não o suporta.fonte
rsync a host:b
é equivalente ascp a host:b
.O usuário Chris no Webhosting Talk escreve:
fonte
scp
é mais simples de usar, pois leva menos argumentos. Eu pego o myselv usando scp em vez dersync
apenas transferir um único arquivo. Provavelmente, estou com preguiça de definir um alias para rsync ... ;-)fonte
rsync a host:b
é equivalente ascp a host:b
, mesmo número de argumentos.Créditos para @tomrunia em https://gist.github.com/KartikTalwar/4393116
Preste atenção
--delete
, não o utilize se desejar manter arquivos estranhos em diretórios de destinofonte