я работаю над миграцией сервера и сталкиваюсь со следующей проблемой:
Я выполняю rsync для миграции всех данных, но по некоторым причинам существует предел глубины папки... Это сделано через rsync по команде ssh:
rsync -raz --verbose --update --delete --exclude-from 'rsync-exclude.txt' /home 192.168.70.50:/
70.50 новый сервер, и я выполняю команду на старом сервере. Структуры папок чрезвычайно глубоки, до 20 папок глубоко.
Так, большинство файлов и папок копируются, но все от глубины папки 10 и не. Если я указываю более глубокие папки
rsync -raz --verbose --update --delete --exclude-from 'rsync-exclude.txt'/home/user/blablabla/domain/web to 192.168.70.50:/home/user/blablabla/domain
это начинает копировать остающиеся папки рекурсивно...
Кто-либо, у кого могла бы быть фиксация для этого?
rsync не имеет ограничений на глубину подкаталогов, которые он будет перемещать. В частности, он превышает предел файловой системы Linux. Я только что скопировал то, что было глубиной около 500 уровней, и rsync скопировал это нормально.
Если вы столкнулись с этой проблемой, проверьте следующее:
- no-inc-recursive
(это более новый алгоритм, и вы, возможно, обнаружили ошибку) -z
Вот еще одна техника, которую можно попробовать. Если он работает, а rsync
- нет, то, возможно, вы обнаружили ошибку в rsync
:
Это приведет к tar
файлам с одной стороны, отправьте tar-файл на stdout, ssh на другую сторону и распакуйте файлы там.
SOURCEDIR=/path/to/source
DESTHOST=machinename
DESTDIR=/path/to/destination
cd "$SOURCEDIR" && tar -c -v -f - . | ssh "$DESTHOST" "cd $DESTDIR && tar -x -p -f -"
Предупреждение: Если в $ DESTDIR есть пробелы или специальные символы, необходимо более тщательно процитировать приведенное выше.