Резервное копирование данных - важная часть как индивидуальной, так и корпоративной инфраструктуры. Машины с операционной системой Linux могут использовать rsync
и ssh
для облегчения процесса.
Rsync - это утилита командной строки, которая позволяет передавать файлы в локальные и удаленные места. Rsync удобен в использовании, поскольку он по умолчанию входит в состав большинства дистрибутивов Linux. Вы можете настроить инструмент, используя многие из доступных опций.
В этом случае мы будем использовать SSH в сочетании с rsync для защиты передачи файлов.
Следуйте этому руководству, чтобы узнать, как использовать rsync для резервного копирования данных. В руководстве будет приведено несколько примеров, иллюстрирующих, как работает этот процесс.
Синтаксис использования инструмента rsync отличается для локальной и удаленной передачи.
Для локальных резервных копий синтаксис следует этой базовой схеме:
rsync options SOURCE DESTINATION
Для передачи файлов во внешнее хранилище мы будем использовать несколько иной шаблон:
rsync options SOURCE user@IP_or_hostname:DESTINATION
В обоих случаях источником и местом назначения являются каталог или путь к файлу.
Для лучшего понимания того, что делает rsync, мы будем использовать подробный ключ -v
. Кроме того, поскольку мы будем создавать резервные копии данных в каталогах, мы будем использовать режим архива -a
для рекурсивной синхронизации. Существует множество вариантов и примеров rsync, поэтому используйте любой из них, который вам нужен.
Утилита rsync позволяет вам по-разному манипулировать вашими данными. Так что будьте осторожны при резервном копировании файлов. Если вы используете неправильный вариант или неправильный пункт назначения, вы можете смешать свои данные. Хуже того, вы можете случайно перезаписать или удалить файлы.
По этой причине используйте параметр --dry-run
, чтобы убедиться, что инструмент делает то, что вы хотите. Возможна случайная потеря данных, но этот параметр помогает предотвратить ее.
Для простых передач вам может не понадобиться использовать --dry-run
, но когда речь идет о большем наборе данных, мы настоятельно рекомендуем вам это сделать.
Используйте основной формат синтаксиса и добавьте --dry-run
:
rsync options --dry-run SOURCE DESTINATION
Мы начнем с резервного копирования каталога на той же машине Linux. Путь может быть любым - другой раздел, жесткий диск, внешнее хранилище и так далее.
Используйте полный путь как к источнику, так и к месту назначения, чтобы избежать ошибок.
Например, чтобы создать резервную копию Dir1
из документов в /media/hdd2/rscync_backup
, используйте команду rsync в этой форме:
rsync -av /home/test/Documents/Dir1 /media/hdd2/rsync_backup
На выходе отображается список переданных файлов и каталогов, а также другие сведения о передаче.
Примечание. Чтобы создать новый каталог в месте назначения и создать в нем резервную копию файлов, добавьте в конец пути к месту назначения косую черту /
. Если вы добавите завершающую косую черту к источнику, то исходный каталог не будет создан в месте назначения. Rsync передает только свое содержимое в этом случае.
Для безопасного резервного копирования данных по сети rsync использует SSH для передачи. Ваш сервер должен быть настроен на разрешение SSH-соединения.
Как только вам удастся подключиться к удаленному компьютеру через SSH, вы можете начать резервное копирование данных в место на этой машине.
Например, чтобы создать резервную копию Dir1
для резервного копирования на другой машине по сети, введите:
rsync -av /home/test/Documents/Dir1 test@192.168.56.101:/home/test/backup
В выводе перечислены каталоги и файлы, перенесенные rsync на другой компьютер.
Вы можете проверить, действительно ли файлы находятся на удаленном сервере:
Если вы подключаетесь в первый раз, вам нужно будет ввести свой пароль и подтвердить его, когда вы получите запрос. Нет необходимости вводить имя пользователя для удаленных передач, если вы хотите подключиться как текущий пользователь.
Примечание: вы можете избежать ввода пароля каждый раз, когда вы хотите создать резервную копию данных с помощью rsync через SSH. Настройте аутентификацию на основе ключей SSH, и вы сможете использовать беспарольный вход на удаленный компьютер.
В примере, который мы использовали здесь, предполагается, что SSH использует порт по умолчанию. Если вам нужно указать другой порт для SSH-соединения, используйте флаг -e
и введите параметры SSH.
Чтобы указать порт 4455, например, выполните указанную выше команду в следующем формате:
rsync -av -e 'ssh -p 4455' /home/test/Documents/Dir1 test@192.168.56.101:/home/test/backup
При необходимости вы можете удалить исходные файлы после их переноса в другое место.
Чтобы сэкономить место, вы можете сжать свои данные перед их переносом в другое место. Вы можете использовать встроенную опцию rsync для сжатия данных или можете использовать другой инструмент для этого перед запуском rsync.
Чтобы сжать данные во время передачи, используйте параметр -z
с командой rsync.
rsync -avz /home/test/Documents/Dir1 test@192.168.56.101:/home/test/backup
Другой вариант - использовать команду zip
, чтобы заархивировать ваши файлы или каталог, а затем запустить rsync. В нашем случае мы заархивируем Dir1
в Dir.zip
:
zip /home/test/Documents/Dir1.zip /home/test/Documents/Dir1
Затем перенесите этот файл в другое место:
rsync -avz /home/test/Documents/Dir1.zip test@192.168.56.101:/home/test/backup
Теперь у вас есть заархивированная копия вашего каталога на удаленном сервере. Вы также можете сделать это для локальных передач, если хотите иметь резервную копию на другом диске или разделе.
В этом руководстве показано, как создавать резервные копии данных с помощью rsync как локально, так и по сети. Будьте осторожны при использовании этого инструмента и обязательно выполните пробный запуск, если вы не уверены в параметрах rsync, которые хотите использовать.