Ускорение / избежание расчета списков файлов rsync

/ bin / sh не всегда является символической ссылкой

NetBSD - это та система, в которой / bin / sh не является символической ссылкой. Установка по умолчанию включает три оболочки: оболочку Korn, оболочку C и модифицированную оболочку Almquist. Из них последний устанавливается только как / bin / sh .

Interix (вторая подсистема POSIX для Windows NT) не имеет / bin / sh в качестве символической ссылки.Один двоичный файл оболочки MirBSD Korn связан дважды как / bin / sh и / bin / mksh .

FreeBSD и производная от нее TrueOS (ранее PC-BSD) имеют оболочку TENEX C как / bin / csh и / bin / tcsh , так и оболочку Almquist как (только ) / bin / sh . Там тоже нет символической ссылки.

OpenBSD имеет (исходную) оболочку C как / bin / csh и оболочку PD Korn, связанную трижды как / bin / sh , / bin / ksh ] и / bin / rksh . Также нет символической ссылки.

12
05.04.2016, 10:22
2 ответа

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

Тем не менее, есть и другие варианты для рассмотрения

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

    .
    cp -au /mnt/ROUTER_WD_2TB/. /mnt/BACKUP_HITACHI_2TB/
    
  2. Используйте вариант алгоритма удаления rsyncпо умолчанию, чтобы избежать создания полного списка файлов перед передачей:

    rsync -haAXi --quiet --delete --delete-during /mnt/ROUTER_WD_2TB/ /mnt/BACKUP_HITACHI_2TB/
    
  3. Разделите каталоги верхнего -уровня на отдельные задачи и запускайте их параллельно. Вы можете обнаружить, что если вы привязаны к дисковому вводу-выводу -, то это на самом деле не поможет, а для вращающихся дисков это почти наверняка усугубит ситуацию.

    for d in /mnt/ROUTER_WD_2TB/*
    do
        rsync -haAXi --quiet --delete --delete-during "$d" /mnt/BACKUP_HITACHI_2TB/ >"/tmp/rsync.${d/*\/}.log" 2>&1 &
    done
    wait
    cat /tmp/rsync.*.log
    rm -f /tmp/rsync.*.log
    

Если ни одно из этих предложений не помогает, то стоит добавить еще одно --verboseк rsync, чтобы посмотреть, что оно делает. Я подозреваю, что он перебирает все неизмененные файлы, и если у вас достаточно файлов, это просто занимает много времени.

8
27.01.2020, 19:56

вы можете использовать -vvдля просмотра всего журнала rsync.

-3
27.01.2020, 19:56

Теги

Похожие вопросы