Имею 8 устройств. Один из них - «концентратор», а 7 - «удаленный». Каждое из устройств находится в разном физическом местоположении, и я подключен к конфигурации концентратора и луча VPN, все удаленные сайты могут получить доступ к концентратору, но не друг другу. В моей синхронизации более 100 000 файлов / папок.
Все RSYNC запускаются с хаба (SITE0)
ПРИМЕЧАНИЕ. Используйте% SITE #% в качестве заполнителя для IP-адреса фактического объекта. Я просто удалил их, потому что они для этого не нужны. У меня вообще есть ip в реальном скрипте.
Я настроил Rsync, чтобы делать следующее:
MWF = понедельник среда пятница. (TH = вторник, четверг) Я синхронизирую Site1 / Site2 / Site3 / Site4 / Site5 / Site6 / Site7, входящий в «Hub», используя эту команду: (где % SiteN% = IP фактического устройства)
rsync -vzar --size-only --no-g --no-times rsync://*%SiteN%*/Image/* /data/Image >> /data/Logs/$foo
(это содержит >> / data / Logs / $ foo, я должен написать журнал для просмотра)
Кажется, что все это всегда работает, то есть новые файлы принимаются «HUB».
После завершения INBOUND я отправляю исходящие сообщения на 3 устройства (Site1 / Site2 / Site3), используя этот сценарий.
rsync -vzar --size-only --no-g --no-times --exclude "SubFolder1/" --exclude "Subfolder2/" /data/Image/* rsync://*%SITEN%*/Image >> /data/Logs/$foo
Вот где у меня проблема. Я получаю в журналах следующее.
Вызов HUB Outbound
rsync Started HUB->Site3 Thu Mar 28 05:32:00 EDT 2019
sending incremental file list
rsync Stopped HUB->Sit3 Thu Mar 28 05:53:39 EDT 2019
Вызов Site1 исходящий
rsync Started Hub->Site1 Thu Mar 28 05:53:39 EDT 2019
sending incremental file list
rsync Stopped Hub->Site1 Thu Mar 28 06:08:41 EDT 2019
Вызов Site2 исходящий
rsync Started HUB->Site2 Thu Mar 28 06:08:41 EDT 2019
sending incremental file list
rsync Stopped HUB->Site2 Thu Mar 28 06:23:46 EDT 2019
======= Но если я запускаю OUTBOUND-скрипт (-ы) вручную в AM, он работает без сбоев.
Что я делаю не так? Считает ли Rsync, что ему не нужно обновлять изменения, потому что я сделал INBOUND ранее? Я думал об этом раньше, и поэтому я разбил скрипты на уникальные скрипты, вызываемые «мастером» (СМ. НИЖЕ) в надежде, что возникнет какая-то проблема с RSYNC и памятью.
Интересно, что на T-H я запускаю другой набор скриптов, которые меняют MWF (входящий Site1 / Site2 / Site3 и все OUTBOUND), и я получаю те же результаты с Site1 / Site2 / Site3.
Основное различие, которое я вижу между ними, - это, возможно, версия RSYNC. На HUB и Site1 / Site2 / Site3 версия Rsycn - 3.1.3, на остальных - 3.0.9.
Любая помощь будет оценена по достоинству.
Полный раскрывающий: у меня есть «главный сценарий», который вызывает отдельные сценарии для запуска необходимого Rsync. Это было сделано для облегчения чтения сценария. У меня была эта проблема ДО того, как я это сделал, это мой вызывающий скрипт, который создает строки, которые выглядят как "Calling Site2 Outbound", а скрипты, которые они вызывают, имеют строки регистрации, чтобы дать строки, которые выглядят следующим образом: "rsync Started HUB-> Site2 Чт, 28 марта, 06:08:41 EDT 2019 "
например: Основной сценарий: (отредактировано и сокращено)
#!/bin/sh
foo=rsync-`date +%m%d%Y`.log
echo 'Syncing remote sites to main site Started '`date` >> /data/Logs/$foo
echo '------------------------------------------'>> /data/Logs/$foo
echo 'Calling Site1 Inbound' >> /data/Logs/$foo
/bin/sh /root/SiteScripts/Site1In.sh $foo
echo ' '>> /data/Logs/$foo
echo 'Calling Site2 Inbound' >> /data/Logs/$foo
/bin/sh /root/SiteScripts/Site2In.sh $foo
echo ' '>> /data/Logs/$foo
.
. Rest of sites
.
echo ' '>> /data/Logs/$foo
echo 'Syncing remote sites to main site Completed '`date` >> /data/Logs/$foo
.
.
.
echo 'Syncing main site to remote sites Started'`date` >> /data/Logs/$foo
echo '------------------------------------------'>> /data/Logs/$foo
echo 'Calling Site1 Outbound' >> /data/Logs/$foo
/bin/sh /root/SiteScripts/Site1Out.sh $foo
echo ' '>> /data/Logs/$foo
echo 'Calling Site2 Outbound' >> /data/Logs/$foo
/bin/sh /root/SiteScripts/Site2Out.sh $foo
echo ' '>> /data/Logs/$foo
echo 'Calling Site3 Outbound' >> /data/Logs/$foo
/bin/sh /root/SiteScripts/Site3Out.sh $foo
echo ' '>> /data/Logs/$foo
echo 'Syncing main site to remote sites Completed'`date` >> /data/Logs/$foo
Пример скрипта, который вызывается сверху (только обратный для входящего)
#!/bin/sh
echo 'rsync Started Hub->Site1 '`date` >> /data/Logs/$1
rsync -vzar --size-only --no-g --no-times --exclude "Subfolder/" --exclude "SubFolder/" /data/OMSImage/* rsync://%Site1%/Image >> /data/Logs/$1
echo 'rsync Stopped Hub->Site1 '`date` >> /data/Logs/$1
================================================== ====================== Обновление 4.2.2019.
Вчера вечером я снова запустил синхронизацию с дополнительным 'v' (-vvzari). Это полный результат, который я получил.
Calling Site1 Outbound (.86)
rsync Started Hub -> Site1 Tue Apr 2 04:25:12 EDT 2019
opening tcp connection to 192.168.86.61 port 873
sending daemon args: --server -vvloDprze.iLsfxC "--log-format=%i" --size-only . IMAGES/ (6 args)
sending incremental file list
[sender] hiding directory 3d-Volumes because of pattern FOLDER1/
[sender] hiding directory Romexis3d because of pattern FOLDER2/
[sender] expand file_list pointer array to 524288 bytes, did move
[sender] expand file_list pointer array to 1048576 bytes, did move
[sender] expand file_list pointer array to 2097152 bytes, did move
[sender] expand file_list pointer array to 1439480 bytes, did move
rsync Stopped Hub -> Site1 Tue Apr 2 04:40:19 EDT 2019
Мне кажется, что RSYNC перечислил путь и не видит никаких изменений, но я точно знаю, что есть сотни новых файлов. Есть ли что-то, чего мне не хватает в работе RSYNC? Я испытываю эту проблему только в устройствах, у которых на обоих концах есть RSYNC 3.1.
Со времени моей первоначальной публикации я развернул 4-е НОВОЕ устройство NAS, и у меня возникла точно такая же проблема с этим. Остальные агрегаты старые (5+ лет), и у меня нет проблем.
Мне теперь интересно, нужно ли мне перезапустить службу RSYNC на HUB или Spokes, чтобы это произошло?
Сегодня вечером я добавлю третью букву "v" ...
4.5.2019 ОБНОВЛЕНИЕ.
После добавления дополнительной буквы «v» я смог устранить еще несколько проблем. Я добавил «лишнее» устройство NAS. Помните, что у меня есть «HUB», и он без проблем «тянет» все удаленные сайты. Он просто не будет «проталкивать» все мои «новые» устройства NAS.
Я добавил второй NAS (за исключением оборудования как HUB под названием SPARENAS) к физическому расположению HUB.
Я выполнил следующую синхронизацию для тестирования All IN в «HUB». «HUB» отправляет на этот новый NAS (SpareNAS) SpareNAS отправляет на «удаленные» устройства NAS.
Вот что интересно.
ХАБ на Запасной = НЕТ ПРОБЛЕМ. Запасное устройство для пульта ДУ = ЖЕ ВОПРОСЫ.
Это указывает мне на то, что проблема связана с удаленными устройствами NAS.
Я собираюсь провести дополнительное тестирование, и следующим шагом будет использование sshpass, чтобы сообщить отказавшим устройствам REMOTE NAS перезапустить Rsync после их успешного «извлечения».
Если это не сработает, я буду использовать тот же метод для перезагрузки устройства REMOTE nas после успешного «PULL».
Синхронизация занимает несколько часов, поэтому у них будет достаточно времени для загрузки, прежде чем я снова попытаюсь получить к ним доступ.
Я думаю, это, по крайней мере, доказало, что ошибка «push» не в моем «HUB».
Думаю, я нашел ответ на этот вопрос. Судя по другим исследованиям, я считаю, что проблема заключается в используемом устройстве и прошивке. Я использую устройства NETGEAR ReadyNas. Те, у кого есть проблемы, используют прошивку 6.9.5. У меня были другие проблемы с медленным доступом SMB, и я обнаружил, что все версии прошивки ReadyNas 6.9.x имеют проблемы с медленным SMB и Rsync (при использовании в качестве резервной копии из графического интерфейса) [Тонны сообщений об этом на форумах NETGEAR].
Форум NETGEAR - Медленный SMB Форум NETGEAR - Медленный SMB после 6.9.x
Я не использую RSYNC таким образом, но, похоже, у меня такие же проблемы, как и у других.
Поэтому, несмотря на то, что мои скрипты нуждались в доработке и работают лучше и быстрее и не нарушают разрешения, как это было месяц назад, у меня все еще есть проблемы, но я думаю, что не могу их исправить. Мне нужно подождать, пока NETGEAR исправит их ....