Básico de scp/rsync no Ubuntu: Transferência de Arquivos Entre Servidores

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/

Próximas Leituras