Básico de scp/rsync no Ubuntu: Transferência de Arquivos Entre Servidores
O Que Você Vai Aprender
- Como usar scp para transferências simples de arquivos
- Como usar rsync para sincronização eficiente
- Quando usar qual ferramenta
- Modelos para copiar e colar para cenários comuns
Resumo Rápido
- scp: Cópia simples via SSH. Bom para arquivos individuais ou transferências pequenas.
- rsync: Sincronização eficiente. Bom para transferências grandes/repetidas, envia apenas diferenças.
1. Básico de scp
Conclusão: scp copia arquivos via SSH; use -r para diretórios e -P para portas personalizadas.
scp (secure copy) transfere arquivos via SSH. Simples e direto.
Local --> Remoto
$ scp /local/file.txt user@remote:/remote/path/
Remoto --> Local
$ scp user@remote:/remote/file.txt /local/path/
Copiar diretório (-r)
$ scp -r /local/dir/ user@remote:/remote/path/
Porta não padrão (-P)
$ scp -P 2222 /local/file.txt user@remote:/remote/path/
2. Básico de rsync
Conclusão: rsync envia apenas diferenças; -avz mais -n para dry runs é a base comum.
rsync é eficiente para transferências grandes - ele envia apenas diferenças.
Local --> Remoto
$ rsync -avz /local/dir/ user@remote:/remote/path/
Remoto --> Local
$ rsync -avz user@remote:/remote/dir/ /local/path/
Opções Principais
-a: Modo archive (preserva permissões, timestamps, etc.)-v: Saída detalhada-z: Comprimir durante a transferência-n: Dry run (visualizar sem alterações)--delete: Deletar arquivos no destino que não estão na origem--progress: Mostrar progresso
Dry run primeiro (recomendado)
$ rsync -avzn /local/dir/ user@remote:/remote/path/
3. Quando Usar Qual
Conclusão: Use scp para arquivos únicos pontuais e rsync para transferências grandes ou repetidas.
| Cenário | Recomendado |
|---|---|
| Arquivo único, uma vez | scp |
| Sincronização de diretório grande | rsync |
| Backups repetidos | rsync |
| Retomar transferência interrompida | rsync |
4. Erros Comuns e Correções
Conclusão: A maioria dos erros são permission denied, connection timeout ou no space left.
Permission denied
- Verifique a autenticação por chave SSH
- Verifique as permissões do diretório de destino
- Tente com sudo se necessário
Connection timeout
- Verifique a conectividade SSH primeiro:
ssh user@remote - Verifique configurações de firewall/security group
No space left on device
- Verifique o espaço em disco do destino:
df -h - Limpe antes da transferência
5. Modelos para Copiar e Colar
Conclusão: Modelos de scp e rsync para copiar e colar cobrem uploads, sincronizações e portas personalizadas.
Modelos scp
# Upload de arquivo unico scp /local/file.txt user@remote:/remote/path/ # Download de arquivo unico scp user@remote:/remote/file.txt /local/path/ # Upload de diretorio scp -r /local/dir/ user@remote:/remote/path/ # Com porta nao padrao scp -P 2222 /local/file.txt user@remote:/remote/path/
Modelos rsync
# Sincronizar diretorio (dry run primeiro) rsync -avzn /local/dir/ user@remote:/remote/path/ rsync -avz /local/dir/ user@remote:/remote/path/ # Com exibicao de progresso rsync -avz --progress /local/dir/ user@remote:/remote/path/ # Espelhar (deletar arquivos extras no destino) rsync -avz --delete /local/dir/ user@remote:/remote/path/ # Porta SSH nao padrao rsync -avz -e "ssh -p 2222" /local/dir/ user@remote:/remote/path/