Большой архив сайта или пользовательских загрузок редко удобно переносить одним скачиванием через браузер. На VPS пригодится поэтапное копирование с проверкой владельцев, прав, символических ссылок и свободного места. Самый частый риск — не пропустить старые файлы, а случайно стереть новые данные на целевой стороне неверной командой синхронизации.
Содержание
- Разбейте файловое дерево по назначению
- Сначала протестируйте синхронизацию на небольшой папке
- Сделайте раннюю копию и финальный дельта-проход
- Сохраните владельцев, права и символические ссылки
- Проверьте целевую копию до подключения пользователей
- Выберите VPS по размеру и характеру файлов
- Контрольная сумма — полезный сигнал, но не единственная проверка
Разбейте файловое дерево по назначению
Перед копированием определите, какие каталоги нужно переносить: код приложения, пользовательские загрузки, журналы, кеш, временные файлы, резервные копии и системную конфигурацию. Обычно не все эти данные одинаково ценны. Кеш можно построить заново, а каталоги заказов, документов и изображений пользователей требуют проверки и защиты от случайного удаления. Не переносите вслепую системные каталоги и временные сокеты.
Проверьте размер и число файлов, особенности имён, количество мелких объектов, символические ссылки и ACL/xattrs, если приложение ими пользуется. Оцените свободное место с учетом промежуточного архива и временного файла. Для каталогов, которые содержат секреты, подготовьте отдельный защищённый способ копирования и проверьте права после переноса. Не используйте веб-папку для временных архивов с базами или конфигурациями.
- Составьте список источников и целевых путей.
- Разделите ценные данные, кеш и временные каталоги.
- Проверьте число файлов, размер и свободное место.
- Зафиксируйте необходимые ACL, владельцев и ссылки.
Провайдеры VPS/VDS для сравнения
При копировании больших файлов можно не заметить пропуски, изменить владельцев и права или начать переключение до завершения передачи. Это особенно критично для пользовательских загрузок и документов. Мы советуем заранее сравнить VPS-площадки, чтобы проверить передачу на выборке и рассчитать финальную синхронизацию; проверьте объём диска, временное место, трафик и права доступа.
| Место | Провайдер |
|---|---|
| 1 | Timeweb |
| 2 | Selectel |
| 3 | EdgeCenter |
| 4 | VDSina |
| 5 | SpaceWeb |
| 6 | AdminVPS |
| 7 | Sprintbox |
| 8 | Hostland |
| 9 | HandyHost |
| 10 | FirstVDS |
Для подробного разбора провайдеров и условий смотрите общий рейтинг VPS/VDS. Перед заказом сверяйте характеристики и ограничения тарифа на сайте провайдера.
Сначала протестируйте синхронизацию на небольшой папке
`rsync` умеет передавать только отличающиеся данные при повторных проходах и работать через SSH. Но параметры важны: trailing slash меняет то, будет ли создан дополнительный каталог, а режим archive сохраняет часть атрибутов, но не автоматически все ACL и extended attributes. Перед крупным запуском скопируйте тестовый набор с обычными файлами, ссылкой и нужными правами, затем сравните результат.
Начинайте с предварительного просмотра или dry-run, если используемый режим его поддерживает, и внимательно проверяйте source и destination. Не добавляйте `—delete` только ради «зеркального совпадения»: эта опция может удалить на целевой стороне файлы, которых не оказалось в списке источника. Для пользователя сайта чаще важно сохранить новые целевые записи, а не удалить всё, что отличается. Отдельно проверьте, какой пользователь выполняет отправку и какие права доступны на принимающей машине.
- Проверьте один небольшой каталог до основного переноса.
- Убедитесь в правильной трактовке завершающего слеша.
- Сравните владельца и режим доступа после теста.
- Не применяйте удаление на целевой стороне без отдельного обоснования.
Сделайте раннюю копию и финальный дельта-проход
Если файлы меняются, первую копию можно сделать заранее, пока приложение продолжает работать. Затем запланируйте короткое окно, когда новые загрузки приостановлены, и выполните второй проход. За счёт delta-transfer часто передаются только изменения, но это зависит от размера и типа файлов. Для большого каталога мелких файлов время может уходить на обход дерева, а не на передачу мегабайт; оцените это на реальном размере.
Если на сайте пользователи могут загружать новые документы, определите, как поступить с загрузками в период миграции: временно закрыть форму, сохранить в очередь или направить в единый источник. Не разрешайте одновременно писать в два независимых каталога без механизма синхронизации. Запишите момент последнего изменения и число файлов до и после финального прохода, чтобы обнаружить пропуск.
- Оцените длительность предварительной копии.
- Остановите или ограничьте изменения на время финального прохода.
- Сверьте число файлов и объёмы ключевых папок.
- Проверьте, где сохраняются новые загрузки после cutover.
Сохраните владельцев, права и символические ссылки
Владельцы UID/GID на разных VPS могут отличаться даже при одинаковом имени пользователя. Если переносить числовые идентификаторы без проверки, файлы могут принадлежать неизвестному пользователю или веб-процессу не хватит доступа. Сверьте владельца целевой службы и назначайте права по минимально необходимому принципу. Не исправляйте проблему командой chmod 777: она скрывает причину и расширяет доступ всем пользователям системы.
Проверьте ссылки отдельно: сохранить саму ссылку и скопировать содержимое, на которое она указывает, — разные операции. Убедитесь, что ссылки не выходят за ожидаемый каталог и не указывают на старый путь. Если приложение использует shared mount, проверьте, кто отвечает за его доступность. Для ACL и extended attributes выполните пробный перенос и сравнение, потому что обычный архивный режим rsync может их не сохранять без дополнительных опций.
- Сопоставьте владельцев по UID/GID, а не только по имени.
- Не расширяйте права до 777 вместо диагностики.
- Проверьте, сохраняются ли символические ссылки.
- Для ACL и xattrs используйте проверенные параметры и тестовый набор.
Проверьте целевую копию до подключения пользователей
После копирования проверьте права приложением, а не только учётной записью администратора: загрузить, открыть, изменить и удалить тестовый объект. Откройте случайные файлы из разных подпапок и проверьте контрольные суммы для особенно важных данных. Если имена или пути чувствительны к регистру, протестируйте сценарии на целевой файловой системе. Убедитесь, что приложение не записывает временные результаты в каталог, доступный через браузер.
Для каталога изображений проверьте страницу с несколькими старыми материалами, новую загрузку, генерацию миниатюры и удаление тестового объекта. Для документов проверьте скачивание и права между пользователями. После переключения наблюдайте за 403 и 404 в логах, ошибками диска и местом. Если данные не совпадают, остановите очистку исходника и выполните сравнение, не запускайте повторную команду с удалением.»
- Проверьте чтение и запись от имени приложения.
- Сверьте контрольные суммы важных файлов.
- Пройдите пользовательский сценарий с загрузкой и скачиванием.
- Проверьте логи доступа и свободное место после cutover.
Выберите VPS по размеру и характеру файлов
Для файлового сайта проверьте ёмкость диска, inode, возможность увеличения хранилища и политику исходящего трафика. Облачные снимки и обычное файловое хранилище могут тарифицироваться отдельно; при переезде понадобится временное место как минимум для исходной копии и целевого набора. Сверьте пропускную способность пути между серверами и способ ограничить доступ к временным данным.
Таблица рейтинга в начале использует тот же список и порядок, что <a href="https://impossible-studio.com/vps-vds/vps-vds-dlya-proekta-s-vebhukami-kak-ne-teryat-vhodyashhie-sobytiya-i-obrabatyvat-ih-bez-zaderzhek/">обзор VPS/VDS для проекта с вебхуками</a>. Для файлового переноса сравнивайте конкретные планы по диску, передаче данных, резервным копиям и поддержке, а не по общему слову «безлимит». Условия меняются, поэтому проверьте их непосредственно перед заказом VPS-сервера.
- Учитывайте inode и количество мелких файлов.
- Заложите временное место для дублирующей копии.
- Проверьте лимиты трафика и восстановление после копирования.
- Не храните единственную резервную копию на том же VPS.
Контрольная сумма — полезный сигнал, но не единственная проверка
Для крупных деревьев сравнивайте важные каталоги, количество объектов и контрольные суммы репрезентативных файлов. Не обязательно пересчитывать хеш каждого временного файла, если это создаёт долгую нагрузку; выберите набор критичных документов, конфигураций и медиа. Сравнение должно выполняться одинаковым способом на обеих сторонах, с учётом символических ссылок и файлов, которые меняются во время копирования.
Проверьте права доступа от имени реального пользователя приложения, а не только от root. На новом VPS числовой UID владельца может отличаться, а совпадающее имя пользователя не означает совпадающий UID. Для загрузок проверьте создание нового файла, его чтение веб-сервером и резервное копирование. Когда фактический результат не совпадает с ведомостью, приостановите переключение и выясните причину вместо повторного копирования с удаляющими параметрами.
- Выберите критичные файлы для сравнения.
- Проверяйте доступ от имени сервиса приложения.
- Сверяйте числовые UID/GID и атрибуты.
- Останавливайте cutover при неизвестном расхождении.
Частые вопросы
Нужно ли переносить владельца файлов один в один?
Проверьте соответствие UID/GID и ожидаемого системного пользователя приложения. Имена пользователей могут совпадать, но числовые идентификаторы — различаться.
Можно ли использовать rsync с —delete?
Только если это намеренно, источник проверен, целевой путь указан правильно и существует отдельная резервная копия. Для первого прохода лучше исключить потенциально удаляющее поведение.
Как понять, что большой перенос завершился правильно?
Сверьте число файлов, размеры, контрольные суммы важных данных и прочитайте файлы через приложение. Затем проверьте логи после подключения пользователей.
Документация и полезные источники
Материал проверен 12 ноября 2026 года. Условия провайдеров, версии программ и DNS-настройки могут меняться — сверяйте актуальные данные перед выполнением переноса.