Вы когда-нибудь беспокоились о потере данных или устали выполнять ручное резервное копирование ежедневно или еженедельно? Использовать rsync
и автоматически синхронизируйте локальные файлы с удаленным сервером так часто, как это необходимо, без ручного вмешательства. Обратите внимание, что для этого руководства требуется доступ к удаленному серверу Linux (например, AWS) и написан под Ubuntu 20.04, хотя любой дистрибутив Linux должен работать нормально.
Установить rsync
Прежде всего проверьте, действительно ли rsync
установлено. Как на локальном ПК, так и на веб-сервере выполните эту команду:
rsync --version
Если вы получите взамен текущую версию rsync, то все готово для следующего раздела. В противном случае, если вы получите команда не найдена ошибка, вы можете установить rsync
с помощью этой команды:
sudo apt-get -y установить rsync
Сгенерировать ключ SSH
Мы будем использовать Ключ SSH для аутентификации соединения между нашим локальным ПК и удаленным сервером. Чтобы сгенерировать новый ключ SSH на локальном ПК в терминале, выполните команду:
Требуется удаленный доступ к вашему компьютеру или серверу 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? Воспользуйтесь одним из этих инструментов клонирования дисков, чтобы клонировать диск Linux.
- Linux
- Резервное копирование данных
- Linux
- Облачное резервное копирование
- Домашняя сеть
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Еще один шаг…!
Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.