Бывают ситуации, когда нужно скачать несколько больших файлов по ssh/scp, а канал очень узкий, так что приходится качать несколько раз. Иногда ещё и сам ssh висит на нестандартном порту и его явно нужно указать.
Первая часть задачи — заставить rsync
работать с докачкой, без дотошного сравнения файлов и быстро. Это делается ключом --append-verify
, который докачивает файл полность и затем сравнивает контрольную сумму. Если она расходится, то файл копируется заново. Это практически идеальный вариант для закачки многогигабайтовых образов по тонкому каналу.
Вторая часть — заставить rsync
подключаться на другой порт. Прямой опции, кторая позволяет так делать нет, но можно указать опцию для ssh, через ключ «-e».
В итоге получается команда вроде
rsync -av --append-verify -e "ssh -p 55667" backup-srv:/data/backup/ /data/backup-srv