Как пользоваться rsync
Во всех примерах скачиваем файл поверх существующей копии. Первое скачивание выглядит так:
time rsync --progress "$REMOTE_ISO" local.iso
local.iso
2940602368 100% 31.61MB/s 0:01:28 (xfer#1, to-check=0/1)
sent 30 bytes received 2940961422 bytes 32859904.49 bytes/sec
total size is 2940602368 speedup is 1.00
real 1m29.065s
user 0m32.420s
sys 0m12.330s
Пояснение к опциям:
-z- используем сжатие--compress-level 9- максимальный уровень сжатия, задействуем процессор по максимум, разгружая канал.--block-size=40507- размер блока для сравнения-c- проверка checksum блоков вместо времени изменения файла.
| Параметры | Не используем сжатие | Используем сжатие ( -z --compress-level 9) |
|---|---|---|
| Не используем блоки | rsync "$REMOTE_ISO" local.isoreal 1m41.437suser 0m11.340ssys 0m3.880sВышло даже медленее, чем в первый раз. |
rsync -z --compress-level 9 "$REMOTE_ISO" local.isoreal 1m51.406suser 0m11.530ssys 0m3.830sВышло ещё меделеннее. Это потому что машины находятся в локальной сети. В случае с узким каналом, сжатие ускорит процесс. |
| Используем блоки ( --block-size=40507 -c) |
rsync --block-size=40507 -c "$REMOTE_ISO" local.isoreal 0m22.893suser 0m5.170ssys 0m0.820sБез сжатия получим 22 сек вместо полутора минут. Неплохо. |
rsync --block-size=40507 -c -z --compress-level 9 "$REMOTE_ISO" local.isoreal 0m26.553suser 0m5.340ssys 0m0.590sВ локальной сети сжатие - лишняя вычислительная нагрузка, даже если использовать блоки. |