Linux

Как использовать rsync для резервного копирования ваших данных в Linux

баннер

rsync — это протокол, созданный для Unix-подобных систем, который обеспечивает невероятную универсальность для резервного копирования и синхронизации данных. Его можно использовать локально для резервного копирования файлов в разные каталоги или настроить синхронизацию через Интернет с другими хостами.

Он может использоваться в системах Windows, но доступен только через различные порты (например, Cygwin), поэтому в этом руководстве мы поговорим о его настройке в Linux. Для начала нам нужно установить / обновить клиент rsync. В дистрибутивах Red Hat эта команда называется «yum install rsync», а в Debian — «sudo apt-get install rsync».

rsync1
Команда в Red Hat / CentOS, после входа в систему как root (обратите внимание, что некоторые недавние дистрибутивы Red Hat поддерживают метод sudo).

rsync4
Команда в Debian / Ubuntu.

Использование rsync для локального резервного копирования

В первой части этого руководства мы создадим резервные копии файлов из Directory1 в Directory2. Оба эти каталога находятся на одном жестком диске, но это будет работать точно так же, если каталоги существуют на двух разных дисках. Есть несколько разных подходов к этому, в зависимости от того, какие резервные копии вы хотите настроить. Для большинства целей будет достаточно следующей строки кода:

$ rsync -av --delete /Directory1/ /Directory2/

Приведенный выше код синхронизирует содержимое Каталога1 с Каталогом2 и не оставляет различий между ними. Если rsync обнаружит, что в Directory2 есть файл, которого нет в Directory1, он его удалит. Если rsync найдет файл, который был изменен, создан или удален в Directory1, он отразит те же самые изменения в Directory2.

Существует множество различных ключей, которые вы можете использовать для rsync, чтобы настроить его в соответствии с вашими потребностями. Вот что вышеупомянутый код говорит rsync делать с резервными копиями:

1. -a = рекурсивно (рекурсивно в каталоги), ссылки (копировать символические ссылки как символические ссылки), perms (сохранить разрешения), времена (сохранить время изменения), группу (сохранить группу), владельца (сохранить владельца), сохранить файлы устройства и сохранить специальные файлы.
2. -v = многословно. Причина, по которой я думаю, что многословность важна, заключается в том, что вы можете точно видеть, что поддерживает rsync. Подумайте об этом: что если ваш жесткий диск выходит из строя и начинает удалять файлы без вашего ведома, тогда вы запускаете свой скрипт rsync и он выталкивает эти изменения в ваши резервные копии, тем самым удаляя все экземпляры файла, которые вы не хотели получать избавиться от?
3. –delete = Это говорит rsync об удалении любых файлов, которые находятся в Directory2, но не в Directory1. Если вы решите использовать этот параметр, я рекомендую также использовать подробные параметры по причинам, указанным выше.

Используя приведенный выше скрипт, вот вывод, сгенерированный с помощью rsync для резервного копирования Directory1 в Directory2. Обратите внимание, что без подробного переключателя вы не получили бы такую ​​подробную информацию.

rsync2

Снимок экрана выше говорит нам, что File1.txt и File2.jpg были обнаружены как новые или иным образом изменены из копий, существующих в Directory2, и поэтому они были скопированы. Совет Noob: обратите внимание на косые черты в конце каталогов в моей команде rsync — они необходимы, обязательно запомните их.

Мы рассмотрим еще несколько удобных переключателей в конце этого урока, но просто помните, что для просмотра полного списка вы можете набрать «man rsync» и просмотреть полный список используемых ключей.

Это о покрывает это, насколько местные резервные копии затронуты. Как вы можете сказать, rsync очень прост в использовании. Он становится немного сложнее при использовании его для синхронизации данных с внешним хостом через Интернет, но мы покажем вам простой, быстрый и безопасный способ сделать это.

Использование rsync для внешних резервных копий

rsync можно настроить несколькими различными способами для внешних резервных копий, но мы рассмотрим наиболее практичный (а также самый простой и безопасный) способ туннелирования rsync через SSH. Большинство серверов и даже многие клиенты уже имеют SSH, и его можно использовать для резервного копирования rsync. Мы покажем вам процесс резервного копирования одной машины Linux на другую в локальной сети. Процесс был бы точно таким же, если бы один хост находился где-то в Интернете, просто обратите внимание, что порт 22 (или любой другой порт, на котором вы настроили SSH), должен быть перенаправлен на любое сетевое оборудование со стороны сервера.