Вы когда-нибудь беспокоились о потере данных или устали выполнять ручное резервное копирование ежедневно или еженедельно? Использовать rsync и автоматически синхронизируйте локальные файлы с удаленным сервером так часто, как это необходимо, без ручного вмешательства. Обратите внимание, что для этого руководства требуется доступ к удаленному серверу Linux (например, AWS) и написан под Ubuntu 20.04, хотя любой дистрибутив Linux должен работать нормально.

Установить rsync

Прежде всего проверьте, действительно ли rsync установлено. Как на локальном ПК, так и на веб-сервере выполните эту команду:

rsync --version

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

sudo apt-get -y установить rsync

Сгенерировать ключ SSH

Мы будем использовать Ключ SSH для аутентификации соединения между нашим локальным ПК и удаленным сервером. Чтобы сгенерировать новый ключ SSH на локальном ПК в терминале, выполните команду:

instagram viewer
Как настроить SSH в Linux и протестировать вашу настройку: руководство для начинающих

Требуется удаленный доступ к вашему компьютеру или серверу Linux? Вот как установить и настроить SSH в Linux, Windows и мобильных устройствах.

ssh-keygen -t rsa -b 4096 -f ~ / .ssh / rsync.key

Когда будет предложено ввести пароль, оставьте его пустым и дважды нажмите клавишу Enter. Это создаст два новых файла в вашем ~ / .ssh / каталог с именем rsync.key который является закрытым ключом, и rsync.key.pub, открытый ключ.

Настроить удаленный сервер

Хотя это и не обязательно, для этого руководства мы создадим новый пользователь на удаленном сервере для соединений rsync и для хранения всех файлов резервных копий. Войдите на удаленный сервер через SSH и выполните эту команду:

sudo useradd -m rsync

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

Чтобы ваш локальный компьютер мог пройти аутентификацию, открытый ключ SSH, сгенерированный в предыдущем разделе, необходимо скопировать на удаленный сервер. Открыть /~.ssh/rsync.key.pub файл в Текстовый редактор и вы увидите одну большую линию, которая выглядит примерно так.

ssh-rsa пользователь @ хост

Эта длинная строка - публичный ключ SSH. Скопируйте его в буфер обмена и на удаленном сервере выполните следующие команды:

sudo su rsync
mkdir -m 0700 $ ГЛАВНАЯ / .ssh
echo "ssh-rsa AAAAB... пользователь @ хост "> $ HOME / .ssh / authorized_keys
chmod 0644 $ HOME / .ssh / authorized_keys

Во второй последней команде замените текст между кавычками этой длинной строкой открытого ключа SSH. Вот и все, ваш локальный компьютер теперь сможет аутентифицироваться на вашем удаленном сервере.

Настроить файл конфигурации ssh

Для простоты добавьте запись в ~ / .ssh / config файл на локальном компьютере, чтобы легко подключиться к удаленному серверу. Откройте файл на локальном ПК с помощью команды.

нано $ HOME / .ssh / config

Внутри файла добавьте запись для удаленного сервера, например:

host backup_server
 имя хоста 192.168.0.24
 пользователь rsync
 IdentityFile ~ / .ssh / rsync

Измените имя хоста на IP-адрес вашего удаленного сервера, и если вы использовали имя пользователя, отличное от «rsync», измените и его. Вы можете использовать все, что хотите для хоста, но в этом примере использовался «backup_server». Сохраните и закройте файл, нажав Ctrl + X, а затем клавиши «Y» и Enter.

Проверьте свое SSH-соединение с удаленным сервером с помощью команды.

ssh backup_server

Предполагая, что все настроено правильно, теперь вы должны войти на свой удаленный сервер через SSH. Закройте соединение с помощью команды.

выход

Синхронизируйте ваши файлы

Теперь проверьте rsync функциональные возможности, и, например, чтобы синхронизировать каталог документов на локальном ПК, выполните команду:

rsync -avz --progress ~ / Documents / backup_server: ~ / Documents

Первое появление ~ / Документы / указывает локальный файл или каталог для синхронизации, резервный_сервер соответствует записи, добавленной в ~ / .ssh / config файл, а окончание : ~ / Документы просто указывает загружать все в каталог / Documents удаленного сервера относительно домашнего каталога.

Войдите на удаленный сервер, и вы должны увидеть новый каталог документов, который синхронизирован с каталогом вашего локального ПК. Каждый раз, когда вы запускаете указанную выше команду, будут загружаться только файлы, которые были изменены с момента последнего, поэтому вы не загружаете постоянно все содержимое каталога.

Автоматизировать через Crontab

Теперь, когда все протестировано и работает правильно, мы можем легко автоматизировать весь процесс, добавив задание crontab на наш локальный компьютер. Чтобы автоматически синхронизировать локальную папку с удаленным сервером каждые 15 минут, выполните команду в терминале.

(crontab -l; echo "* / 15 * * * * rsync -avz --progress ~ / Documents / backup_server: ~ / Documents> / dev / null 2> & 1";) | crontab

Вы можете получить сообщение «Нет crontab для пользователя», и вы можете просто проигнорировать его. Изменить Документы каталог в то, что вы хотите сделать резервную копию, но убедитесь, что для каталогов оставлена ​​косая черта, иначе они не будут резервировать должным образом.

Убедитесь, что задание crontab было успешно добавлено с помощью команды.

crontab -l

Если вы видите только что добавленное задание crontab, значит, все на месте. Подождите 15 минут, проверьте свой удаленный сервер, и все необходимые файлы должны быть там. Начиная с этого момента, все изменения, внесенные в ваши файлы, будут автоматически загружаться на удаленный сервер каждые 15 минут.

Скачать с удаленного сервера

Вы также можете использовать rsync чтобы загружать файлы с удаленного сервера и синхронизировать их с локальным ПК. Используя приведенный выше пример каталога / Documents, в терминале выполните команду:

rsync -chavzP резервный_сервер: ~ / Documents / ~ / Documents

В ~. / Документы каталог на вашем локальном ПК теперь должен быть зеркальным отображением удаленного сервера.

Включить и исключить шаблоны

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

rsync -avz --include "* .html" --progress ~ / mysite / backup_server: ~ / public_html

Проверьте удаленный сервер, и вы увидите, что только файлы с расширением .html из каталога local / mysite / были загружены в каталог / public_html / remote. Аналогично, вы также можете синхронизировать все, кроме определенных файлов, с --исключать вариант. Например, следующая команда синхронизирует все файлы, кроме файлов с .текст расширение.

rsync -avz --exclude "* .txt" --progress ~ / mysite / backup_server: ~ / public_html

Синхронизировать два локальных каталога

При необходимости вы также можете синхронизировать два локальных каталога с помощью этой команды.

rsync -zvr ~ / источник / каталог ~ / место назначения / каталог

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

Отдыхай спокойно

Теперь вы можете вздохнуть с облегчением, зная, что ваши шансы на потерю данных теперь значительно ниже. Из этой статьи вы узнали, что rsync как сгенерировать и установить SSH-ключ, определить сервер в ~ ./. ssh / config файл, синхронизируйте локальный и удаленный каталоги и автоматизируйте весь процесс с помощью crontab. В дальнейшем все необходимые файлы всегда будут синхронизироваться с вашим удаленным сервером с задержкой всего в 15 минут.

Эл. адрес
Как клонировать жесткий диск Linux: 4 метода

Нужно клонировать жесткий диск или раздел Linux? Воспользуйтесь одним из этих инструментов клонирования дисков, чтобы клонировать диск Linux.

Похожие темы
  • Linux
  • Резервное копирование данных
  • Linux
  • Облачное резервное копирование
  • Домашняя сеть
Об авторе
Мэтт Дизак (Опубликовано 13 статей)Ещё от Matt Dizak

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Еще один шаг…!

Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.

.