rsync
é o negócio.
rsync -chavz --partial --progress --stats source_files remotehost.domain:target_dir
Onde:
--checksum -c -- skip based on checksums, not mod-time & size
--human-readable -h -- output numbers in a human-readable format
--archive -a -- archive mode; same as -rlptgoD (no -H)
--verbose -v -- increase verbosity
--compress -z -- compress file data during the transfer
--partial -- keep partially transferred files
--progress -- show progress during transfer
--stats -- give some file-transfer stats
O melhor do rsync é que ele copia apenas o que precisa. Portanto, se você executar o comando uma segunda vez, ele não deverá copiar nada (a menos que um dos arquivos tenha sido alterado nesse mesmo intervalo). Isso também é útil se a sua transferência for interrompida de alguma forma. A saída do comando acima fornecerá algumas informações sobre quanto ela acelerou a transferência de arquivos.