Хостинг

Монтирование резервных копий

Монтирование резервных копий

Ниже в примерах используется имя диска vdc; замените это значение на реальное имя диска в вашей системе. Проверить имена дисков можно, например, командой lsblk.

Монтирование резервной копии подразумевает подключение диска внутри операционной системы.

Для этого:

  • Примонтируйте бэкап в панели управления (Резервные копии → нужный бэкап → кнопка «Смонтировать».

Примонтируйте бэкап внутри ОС. Сделать это можно в консоли при помощи команды mount. Пример использования команды:

mount /dev/vdc1 /mnt

Для отключения диска необходимо сначала отключить его внутри операционной системы командой umount. Пример использования:

umount /dev/vdc1

После необходимо нажать на кнопку «Отключить» в панели управления сервером.

Отключить резервную копию из панели невозможно до тех пор, пока она используется внутри операционной системы.

Кто бэкап?

  • ** sda и sda1 ** :

  • Имеют атрибут RO: 1 , что означает “только для чтения” (Read-Only). Это ** очень характерно для бэкапов ** , чтобы защитить данные от случайных изменений.

  • ** Однако, у sda1 нет точки монтирования ( MOUNTPOINT ) ** . Это означает, что если sda и является диском с бэкапом, то он ** на данный момент не примонтирован ** к файловой системе и его содержимое недоступно через обычные пути.

  • ** vda и vda1 ** :

  • vda1 примонтирован как корневая файловая система ( / ). Это основной системный диск, а не бэкап.

  • Атрибут RO: 0 означает, что он доступен для чтения и записи.

Диск sda (и его раздел sda1 ) является наиболее вероятным кандидатом на то, чтобы * быть * бэкапом (из-за флага RO: 1 ), но он ** не примонтирован ** . Если вам нужно получить доступ к данным на этом предполагаемом бэкапе, его нужно сначала примонтировать.

Чтобы примонтировать диск `

sda `

“(точнее, его раздел sda1 , так как обычно монтируют именно разделы, содержащие файловые системы), выполните следующие шаги:

  • ** Создайте точку монтирования: **

Это пустая директория, куда будет “подключено” содержимое раздела sda1 .

sudo mkdir /mnt/mybackup

(Вы можете назвать директорию как угодно, например, /mnt/sda_disk , /media/backup и т.д. Я выбрал /mnt/mybackup для примера.)

  • ** Примонтируйте раздел sda1 : **

Поскольку lsblk показал, что sda1 имеет атрибут RO: 1 (только для чтения), лучше всего монтировать его в режиме “только для чтения”, чтобы случайно не повредить данные.

sudo mount -o ro /dev/sda1 /mnt/mybackup

  • sudo : Команда выполняется с правами суперпользователя.

  • mount : Команда монтирования.

  • -o ro : Опция, указывающая монтировать в режиме “только для чтения” (read-only).

  • /dev/sda1 : Устройство, которое вы хотите примонтировать (первый раздел на диске sda ).

  • /mnt/mybackup : Точка монтирования, которую вы создали на шаге 1.

Если по какой-то причине вам нужно монтировать его для записи (например, если вы уверены, что это не бэкап или вам нужно что-то на него записать, и вы готовы принять риски), то команда будет выглядеть так (но будьте осторожны, если RO:1 был установлен не случайно): *

# sudo mount /dev/sda1 /mnt/mybackup

В этом случае система может попытаться принудительно перемонтировать его в режиме чтения-записи, если это возможно на уровне устройства/файловой системы. *

  • ** Проверьте, что диск примонтирован: **

Выполните снова lsblk или df -h :

lsblk

Вы должны увидеть /mnt/mybackup (или выбранное вами имя) в столбце MOUNTPOINT для sda1 .

Или:

df -h

Эта команда покажет все примонтированные файловые системы, их размер, использование и точки монтирования. Вы должны увидеть там /dev/sda1 , примонтированный к /mnt/mybackup .

  • ** Доступ к данным: **

Теперь содержимое раздела sda1 доступно в директории /mnt/mybackup .

ls /mnt/mybackup cd /mnt/mybackup # и т.д.

  • ** Отмонтирование (когда закончите работу): **

Когда вы закончите работать с данными на sda1 , его следует отмонтировать:

sudo umount /mnt/mybackup

Или можно указать устройство:

sudo umount /dev/sda1

** Возможные проблемы и их решения: **

  • ** “mount: unknown filesystem type” ** : Если вы получите такую ошибку, это означает, что ядро не может автоматически определить тип файловой системы на /dev/sda1 . Вам нужно будет указать его явно с помощью опции -t . Например, если это ext4:

sudo mount -o ro -t ext4 /dev/sda1 /mnt/mybackup

Другие распространенные типы: xfs , ntfs (потребуется ntfs-3g ), vfat . Вы можете попробовать угадать или использовать команду sudo blkid /dev/sda1 или sudo file -s /dev/sda1 чтобы попытаться определить тип файловой системы.

  • ** “mount point /mnt/mybackup does not exist” ** : Убедитесь, что вы создали директорию на шаге 1.

  • ** “you must be root to do that” ** : Большинство команд монтирования требуют прав суперпользователя, поэтому используйте sudo .

Начните с команды sudo mount -o ro /dev/sda1 /mnt/mybackup . Скорее всего, она сработает.


Хорошо, для этой задачи идеально подойдет команда rsync . Она очень гибкая и позволяет делать именно то, что вы хотите.

** Команда будет выглядеть так: **

sudo rsync -avhP --ignore-existing /mnt/mybackup/home/bitrix/www/upload/ /home/bitrix/www/upload/

Давайте разберем опции:

  • sudo : Копирование в системные директории (такие как /home/bitrix/www/upload/ ) и сохранение прав доступа обычно требует прав суперпользователя.

  • rsync : Сама команда.

  • -a (archive): Это сокращение для набора опций ( -rlptgoD ). Она означает:

  • -r : рекурсивно для директорий.

  • -l : копировать символические ссылки как ссылки.

  • -p : сохранять права доступа (permissions).

  • -t : сохранять время модификации.

  • -g : сохранять группу.

  • -o : сохранять владельца (только для суперпользователя).

  • -D : сохранять специальные файлы и файлы устройств (только для суперпользователя).

  • -v (verbose): Показывать подробную информацию о процессе, то есть вы будете видеть, какие файлы копируются.

  • -h (human-readable): Отображать размеры файлов в удобном для человека виде (KB, MB, GB).

  • -P : Это то же самое, что --partial --progress .

  • --progress : Показывать прогресс копирования для каждого файла (особенно полезно для больших файлов).

  • --partial : Если передача прервется, при следующем запуске rsync сможет докачать частично скопированные файлы.

  • --ignore-existing : ** Это ключевая опция для вашей задачи. ** Она указывает rsync пропускать любые файлы, которые уже существуют в целевой директории. Новые файлы и директории будут скопированы.

  • /mnt/mybackup/home/bitrix/www/upload/ : ** Источник. ** Обратите внимание на слеш / в конце. Это важно! Он означает “копировать содержимое этой папки”, а не саму папку.

  • /home/bitrix/www/upload/ : ** Назначение. **

** Перед выполнением: **

  • ** Убедитесь, что sda1 примонтирован к /mnt/mybackup ** :

lsblk df -h | grep /mnt/mybackup

Если нет, примонтируйте:

sudo mount -o ro /dev/sda1 /mnt/mybackup

  • ** (Очень рекомендуется) Сначала выполните “сухой запуск” (dry run): **

Добавьте опцию -n (или --dry-run ), чтобы посмотреть, что rsync * собирается * сделать, не внося никаких реальных изменений:

sudo rsync -avhnP —ignore-existing /mnt/mybackup/home/bitrix/www/upload/ /home/bitrix/www/upload/

Просмотрите вывод. Если он соответствует вашим ожиданиям (показывает только те файлы и папки, которых нет в целевой директории), тогда можно выполнять реальную команду.

  • ** Проверьте наличие свободного места ** на целевом разделе (где находится /home ), если ожидается копирование большого объема данных.

df -h /home

** Выполнение реальной команды: **

sudo rsync -avhP --ignore-existing /mnt/mybackup/home/bitrix/www/upload/ /home/bitrix/www/upload/

Вы увидите список файлов и директорий, которые копируются, а также общий прогресс.

** После копирования: **

  • Проверьте, что нужные файлы и папки появились в /home/bitrix/www/upload/ .

  • Убедитесь, что права доступа и владелец файлов корректны. Опция -a в rsync старается их сохранить. Если владелец на бэкапе был, например, bitrix:bitrix , то и на целевой системе он должен остаться таким же (если пользователь bitrix с тем же UID/GID существует). Если нет, то владельцем может стать root (потому что вы используете sudo ). В этом случае может потребоваться дополнительно изменить владельца:

sudo chown -R bitrix:bitrix /home/bitrix/www/upload/

(Замените bitrix:bitrix на правильного пользователя и группу, если они другие.)

Эта команда должна точно выполнить вашу задачу.

Отлично, для этого используется опция --exclude в rsync .

Команда будет выглядеть так:

sudo rsync -avhP --ignore-existing --exclude='1c_catalog*/' /mnt/mybackup/home/bitrix/www/upload/ /home/bitrix/www/upload/

Давайте разберем добавленную часть:

  • --exclude='1c_catalog*/' :

  • --exclude=PATTERN : Эта опция указывает rsync исключить файлы и директории, соответствующие заданному PATTERN .

  • '1c_catalog*/' :

  • 1c_catalog : Часть имени, которую мы ищем.

  • `

  • : Звездочка (wildcard) означает “любое количество любых символов”. То есть, это будет соответствовать 1c_catalog_data , 1c_catalog_files , 1c_catalog_images_v2 ` и т.д.
  • / : Слеш в конце шаблона для --exclude особенно важен. Он означает, что шаблон применяется ** только к директориям ** . Если бы слеша не было, то rsync исключил бы и файлы, начинающиеся с 1c_catalog .

  • Кавычки ' ' вокруг шаблона используются для того, чтобы оболочка (bash) не пыталась интерпретировать `

  • ` самостоятельно.

** Как это работает: **

rsync будет просматривать все файлы и директории в источнике ( /mnt/mybackup/home/bitrix/www/upload/ ).

Когда он встретит директорию, имя которой начинается с 1c_catalog (например, 1c_catalog_export , 1c_catalog_temp и т.д.), он пропустит эту директорию и все ее содержимое.

Затем, для всех остальных файлов и директорий, он проверит, существуют ли они в целевой папке ( /home/bitrix/www/upload/ ) из-за опции --ignore-existing . Если не существуют, они будут скопированы.

** Перед выполнением: **

  • ** Убедитесь, что sda1 примонтирован к /mnt/mybackup ** (если вы его отмонтировали).

  • ** (ОЧЕНЬ РЕКОМЕНДУЕТСЯ) Сначала выполните “сухой запуск” (dry run): **

Добавьте опцию -n (или --dry-run ), чтобы посмотреть, что rsync * собирается * сделать, не внося никаких реальных изменений:

sudo rsync -avhnP —ignore-existing —exclude=‘1c_catalog*/’ /mnt/mybackup/home/bitrix/www/upload/ /home/bitrix/www/upload/

Внимательно просмотрите вывод. Убедитесь, что:

  • Директории 1c_catalog* НЕ появляются в списке файлов, которые будут скопированы (они могут быть упомянуты как “excluding”).

  • Файлы, которые уже существуют в /home/bitrix/www/upload/ , НЕ появляются в списке (они должны быть пропущены из-за --ignore-existing ).

  • Показываются только те файлы и папки (не 1c_catalog* ), которых нет в целевой директории.

  • ** Проверьте наличие свободного места ** на целевом разделе.

** Выполнение реальной команды: **

Если “сухой запуск” выглядит правильно, выполняйте команду без -n :

sudo rsync -avhP --ignore-existing --exclude='1c_catalog*/' /mnt/mybackup/home/bitrix/www/upload/ /home/bitrix/www/upload/

** Если нужно исключить несколько разных шаблонов: **

Вы можете использовать опцию --exclude несколько раз:

sudo rsync -avhP --ignore-existing \ --exclude='1c_catalog*/' \ --exclude='temp_files/' \ --exclude='*.tmp' \ /mnt/mybackup/home/bitrix/www/upload/ /home/bitrix/www/upload/

Здесь \ в конце строки используется для переноса длинной команды на несколько строк для читаемости.

Эта команда должна точно соответствовать вашим требованиям.


Ищете надежного партнера по веб-разработке и автоматизации? Мы помогаем бизнесу расти с помощью современных технологий, автоматизации процессов и экспертного SEO. Свяжитесь с нами, чтобы обсудить вашу задачу.

🚀 Нужна помощь с сайтом на 1С-Битрикс или Аспро?

Я работаю удалённо по всей России и СНГ. Узнайте цены и условия для вашего города:

Все регионы →