Как перенести большие файлы на новый VPS и сохранить права доступа

Blog image

Большой архив сайта или пользовательских загрузок редко удобно переносить одним скачиванием через браузер. На 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-настройки могут меняться — сверяйте актуальные данные перед выполнением переноса.