2

Я использую rsync для своего личного резервного копирования, но в настоящее время у меня есть провайдер, который ограничивает длительные передачи. Читая справочные страницы по rsync, я не нашел ни одной опции, но мне интересно, есть ли в rsync настройка для начала новой передачи после передачи количества байтов X или задержки передачи в течение Y секунд.

По сути, отключение сетевого кабеля и повторное подключение каждые несколько минут сделало бы то же самое, но я не сижу дома весь день.

Интересно об этом, а также в качестве второстепенного вопроса, мне также интересно, инициирует ли rsync новый сеанс передачи файлов для каждого файла или отправляет свои данные в виде одного непрерывного потока.

4 ответа4

3

Опция -e может использоваться для указания транспортной программы, которую она использует вместо ssh по умолчанию для открытия оболочки на другой стороне. Я не знаю ни одной замены, которая будет делать то, что вы хотите, хотя.

rsync работает, запустив rsyncd, rsync daemon на удаленной стороне и взаимодействуя с ним в одном длинном потоке.

2

Какова природа регулирования?

Если он активируется только для длительных передач с определенной скоростью, возможно, вы можете использовать регулирование скорости rsyncs со страницы руководства:

--bwlimit=KBPS
              This  option  allows  you to specify a maximum transfer rate in kilobytes
              per second. This option is most effective when  using  rsync  with  large
              files  (several  megabytes and up). Due to the nature of rsync transfers,
              blocks of data are sent, then if rsync determines the  transfer  was  too
              fast,  it  will wait before sending the next data block. The result is an
              average transfer rate equaling the specified limit. A value of zero spec‐
              ifies no limit.

В качестве альтернативы, вы можете разделить файлы на куски одинакового размера, а затем запустить скрипт, который передает каждый из них по очереди, спя между передачами.

1

rsync будет использовать один и тот же поток данных для всех файлов. После начальной синхронизации будут отправлены только изменения файла. Я не буду беспокоиться о регулировании пропускной способности, если вы регулярно не вносите огромные изменения в дерево каталогов, для которого вы создаете резервную копию.

Rsync использует комбинацию временных и контрольных сумм, чтобы определить, какие файлы были изменены и где файлы изменились. Для файлов типа журнала есть некоторые накладные расходы синхронизации, и затем хвост файла передается. Должны быть некоторые замедления в использовании полосы пропускания, когда файлы изменились, поскольку файлы должны быть прочитаны и контрольные суммы на обоих концах. Этого может быть достаточно, чтобы не допустить сужения полосы пропускания.

Резервное копирование rsync может быть прервано и возобновлено позже. Затем он перейдет к резервному копированию текущих изменений, включая любые пропущенные изменения из предыдущих запусков. Если у вас есть большой файл для резервного копирования, частые прерывания могут не работать. Вы должны позволить ему работать достаточно долго, чтобы передать файл. Любая стратегия, основанная на частых повторениях резервного копирования, может потерпеть неудачу.

ssh зашифрован и должен быть освобожден от регулирования, хотя они могут регулировать его для больших пакетов. Если они влияют на размер пакета, вы будете ограничены независимо от того, как часто вы прерываете процесс. Поскольку вы, вероятно, переносите только небольшую часть своей структуры каталогов, регулирование по-прежнему должно обеспечивать достаточно быстрое резервное копирование.

1

Интересно, почему никто не упомянул о написании скрипта, который время от времени отправляет SIGSTOP и SIGCONT в процесс rsync.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .