2

У меня был сценарий резервного копирования rsync, запущенный на блоке Centos 6, который синхронизировал ~ 410 ГБ данных с локального (LAN) сервера через гигабитное соединение. Этот сценарий выполняется ежечасно, и если нет новых файлов для копирования, его выполнение обычно занимает около 20 минут.

Я реализовал сценарий очистки, который запускается в окне Centos и удаляет все файлы из локальной резервной копии старше 1 года (после некоторых проверок) и добавляет эти файлы в список исключений для синтаксического анализа rsync. Все работает нормально, но на это уходит около 10 часов (без новых файлов). После первоначальной очистки исходные данные теперь составляют около 80 ГБ, а список исключений - около 90 МБ.

Вот моя строка rsync из скрипта:

rsync -pad $wholefiles  --exclude-from=${exclfile}.combined /mnt/${smbdir}/${drive}/${foldername} /backup/rob/${smbdir}/${drive} >> /var/log/rob/robso.log 2>&1

Есть ли у rsync (или bash) ограничения на размер списков файлов? Можете ли вы увидеть что-нибудь в моем синтаксисе, что может вызвать такое огромное количество времени обработки? Заранее спасибо.

РЕДАКТИРОВАТЬ: переменная $ wholefiles в строке rsync выше передает опцию --whole-file в этом случае.

1 ответ1

0

Я бы перевернул это. Вместо того, чтобы rsync исключал большое количество файлов, я бы не передавал эти файлы rsync для рассмотрения.

cd "/mnt/${smbdir}/${drive}/${foldername}" &&
    find . -maxdepth 1 -mtime -366 -type f -print0 |
    rsync -a0 --files-from=- . "/backup/rob/${smbdir}/${drive}" >> /var/log/rob/robso.log 2>&1

Я не совсем уверен, что, указав rsync -d (--dirs), вы намерены, чтобы не было рекурсии. Если я ошибся, удалите -maxdepth 1 .

Опция --whole-file имеет значения, потому что она всегда будет использоваться здесь, так как rsync видит, что копирует между двумя частями одной и той же "локальной" файловой системы. (Да, это означает, что его дельта-алгоритм отключен.)

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

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