scp e rsync copiam ficheiros via SSH. Use-os para configs, scripts, backups, mundos e pastas de servidor quando o SFTP não é conveniente.
scp é melhor para cópias rápidas e pontuais. rsync é melhor para sincronizações repetidas porque pode copiar apenas ficheiros alterados, preservar permissões, excluir pastas, pré-visualizar alterações e espelhar eliminações quando solicitado.
Copiar um ficheiro com scp
scp ./server.cfg username@VPS_IP_ADDRESS:/home/username/server.cfg
Copiar uma pasta com scp
scp -r ./world username@VPS_IP_ADDRESS:/home/username/world
Usar uma porta SSH personalizada com scp
scp usa um -P maiúsculo para a porta SSH:
scp -P 2222 ./server.cfg username@VPS_IP_ADDRESS:/home/username/server.cfg
Usar uma chave SSH com scp
scp -i ~/.ssh/mykey ./server.cfg username@VPS_IP_ADDRESS:/home/username/server.cfg
Sincronizar uma pasta com rsync
rsync -avz ./world/ username@VPS_IP_ADDRESS:/home/username/world/
A barra final é importante. ./world/ copia o conteúdo da pasta para a pasta de destino. Sem a barra final, rsync copia a própria pasta para o destino.
Pré-visualizar um rsync antes de copiar
Use --dry-run quando quiser verificar o que mudaria antes de alterar os ficheiros remotos:
rsync -avz --dry-run ./world/ username@VPS_IP_ADDRESS:/home/username/world/

Espelhar uma pasta exatamente
--delete remove ficheiros remotos que já não existem localmente. Isto é útil para espelhos exatos, mas perigoso se apontar para a pasta errada.
rsync -avz --delete ./world/ username@VPS_IP_ADDRESS:/home/username/world/
Execute o mesmo comando com --dry-run primeiro se estiver a usar --delete.
Excluir ficheiros ou pastas
Exclua logs, pastas de cache, ficheiros temporários ou ficheiros gerados que não deseja copiar:
rsync -avz --exclude "logs/" --exclude "*.tmp" ./server/ username@VPS_IP_ADDRESS:/home/username/server/
Usar uma porta SSH personalizada com rsync
rsync passa opções SSH através de -e:
rsync -avz -e "ssh -p 2222" ./server/ username@VPS_IP_ADDRESS:/home/username/server/
Usar uma chave SSH com rsync
rsync -avz -e "ssh -i ~/.ssh/mykey" ./server/ username@VPS_IP_ADDRESS:/home/username/server/
Copiar do VPS de volta para o seu PC
Inverta a origem e o destino ao descarregar uma pasta do VPS:
rsync -avz username@VPS_IP_ADDRESS:/home/username/world/ ./world-backup/
Opções úteis do rsync
| Opção | O que faz |
|---|---|
-a | Modo de arquivo. Preserva pastas, permissões, timestamps e symlinks. |
-v | SaÃda detalhada, para que possa ver o que está a ser copiado. |
-z | Comprime dados durante a transferência. Útil em ligações mais lentas. |
--progress | Mostra o progresso da cópia para ficheiros grandes. |
--dry-run | Mostra o que aconteceria sem alterar ficheiros. |
--delete | Elimina ficheiros remotos que não estão presentes na origem. |
--exclude | Ignora ficheiros ou pastas correspondentes. |
Quando usar cada um
| Ferramenta | Melhor para |
|---|---|
scp | Cópias simples e pontuais de ficheiros ou pastas. |
rsync | Sincronizações repetidas, pastas maiores, backups, exclusões, execuções a seco e cópia apenas de ficheiros alterados. |
Pare o servidor de jogos antes de substituir ficheiros de mundo ativos, ficheiros de base de dados ou saves. Faça um backup primeiro se estiver a usar --delete ou a copiar sobre um mundo existente.
