Сама файловая система, скорее всего, не может быть скопирована онлайн, так как она постоянно меняется.
Вы можете легко скопировать файлы, сохранив практически все в каждом файле, внутри файловой системы. Попробуйте rsync
с вашего выделенного сервера:
rsync -avzHXShPs --exclude sys/ --exclude dev/ --exclude proc/ root@VPS:/ /path/to/backup_folder/
где VPS
- это IP-адрес вашего VPS, а /path/to/backup_folder/
- это папка назначения на вашем выделенном сервере.
Если ваш VPS имеет другой порт SSH, вы можете сделать это:
rsync -avzHXShPs -e "ssh -p PORT" --exclude sys/ --exclude dev/ --exclude proc/ root@VPS:/ /path/to/backup_folder/
где PORT
- номер пользовательского порта.
Если вы хотите передать какие-либо измененные файлы с момента начала передачи файла, просто повторите ту же команду. Если файлы были удалены из VPS, и вы хотите, чтобы удаленные файлы были удалены из резервной копии на вашем выделенном сервере, просто добавьте флаг --delete
в строку rsync
.
объяснение
флаги rsync
-a
означает "архив", который содержит большинство настроек для создания почти точных копий всех файлов в указанной папке (в вашем случае, /
на VPS).
-v
означает "многословный". Он покажет вам подробную информацию о том, что копируется.
-z
означает "сжатие", что полезно при копировании по сети, поскольку скорость сети часто ниже, чем у дисков, и вы можете сэкономить время, отправляя сжатые данные по сети.
-H
означает "жесткие ссылки", которые сохраняют жесткие ссылки, если они важны для вас.
-X
означает "расширенные атрибуты", которые сохраняют расширенные атрибуты. Это работает не на всех файловых системах, но rsync
продолжит работу, даже если при копировании расширенных атрибутов возникнут ошибки.
-S
означает "разреженный", что очень полезно для ускорения передачи файлов, содержащих набор двоичных нулей.
-h
означает "читаемый человеком", который выводит читаемую человеком информацию во время передачи.
-s
означает "защитить аргументы", полезно только в том случае, если в аргументах вашего источника или получателя есть пробелы в пути.
У меня есть горячая клавиша для ввода этой строки rsync
потому что я много копирую данные, и большую часть времени удобно иметь все эти флаги.
rsync
исключает
--exclude sys/
исключает монтирование sysfs
в /sys
. Без этого вы можете столкнуться с некоторыми странностями, такими как бесконечная рекурсия или файлы бесконечного размера.
--exclude dev/
исключает монтирование devtmpfs
в /dev
, которое не будет полезно на вашем выделенном сервере (и даже может представлять угрозу безопасности), поскольку устройства на двух разных серверах совершенно разные.
--exclude proc/
исключает монтирование proc
в /proc
. Системная информация в этой папке относится только к исходному серверу.