Как использовать Rsync для синхронизации локальных и удаленных каталогов
Как использовать Rsync для синхронизации локальных и удаленных каталогов

Синхронизация каталогов между сервером и локальной системой rsync

Синхронизация файлов — одна из важнейших операций при хранении данных, резервном копировании и управлении сервером. Инструмент rsync — мощное, гибкое и оптимизированное решение для этой задачи. Это руководство покажет вам, как синхронизировать локальные и удалённые каталоги (на сервере) с помощью rsync, использовать его для резервного копирования и автоматизировать передачу данных.
0 Акции
0
0
0
0

1. Предпосылки

Для выполнения rsync Между локальной системой и удаленным сервером необходимо:

  • Два устройства: одно локальное (ваш компьютер) и одно Linux-сервер (VPS или выделенный сервер)

  • rsync Установлено на обеих системах

  • Доступ по SSH между двумя системами (чтобы вы могли общаться без постоянного ввода паролей)

  • Открытый ключ SSH на целевом сервере в файле авторизованные_ключи быть размещенным


2. Концепция и функции rsync (специализированная и понятная версия для новичков и профессионалов)

rsync — это мощный инструмент командной строки в Linux, который используется для Синхронизация (Sync) и Передача данных Он используется между двумя путями, независимо от того, находятся ли эти пути в одной системе или на двух отдельных серверах.

Но почему rsync так популярен?
Из-за этого Вместо того чтобы переносить файлы целиком, он переносит только те части, которые были изменены.

Как именно работает rsync? (Простое и точное понимание)

При запуске rsync инструмент в первую очередь:

  1. Структура и содержание двух треков (например, сравнивает папку назначения и исходную папку).

  2. Проверки Какие файлы новые, какие были изменены, а какие были удалены или не изменены?.

  3. Вместо того, чтобы отправлять весь файл, просто Часть данных, которые изменились Переводы.

Эта техника называется:

Алгоритм дельта-передачи

Этот алгоритм rsync Очень быстро и эффективно Да, потому что:

  • Уменьшается потребляемая полоса пропускания.

  • Время перевода значительно короче.

  • Ресурсы ЦП на сервере задействованы меньше


Простой пример для лучшего понимания функциональности rsync

Предположим, у вас есть файл размером 1 ГБ, и из него изменилось только 5 МБ.

  • Распространенные инструменты, такие как SCP-1811 Они заново загружают весь 1 ГБ.

  • Но rsync отправляет только те же самые измененные 5 МБ..

Это означает:

  • Больше скорости

  • Меньше использования интернета

  • Меньше нагрузки на сервер


rsync и серверы: почему это лучший инструмент для управления серверами?

Когда на Сервер Или VPS Вы работаете, вам обычно нужно:

  • Перемещение резервных копий между двумя серверами

  • Переместить файлы сайта с текущего сервера на новый сервер

  • Всегда синхронизируйте важные папки (например, /var/www).

  • Передача больших файлов без потери пропускной способности

Во всех этих случаях rsync является лучшим выбором, потому что:

Безопасная передача по SSH

rsync использует протокол SSH для передачи, поэтому:

  • Данные зашифрованы.

  • Нет необходимости открывать дополнительные порты

  • Безопасность связи гарантирована.

Удалить лишние файлы в месте назначения

С флагом --удалить Он может сохранять пункт назначения точно таким же, как и источник.

Резюме

Если во время передачи прервется подключение к Интернету, rsync перенесет оставшуюся часть файла, а не с нуля.

Подходит для автоматизации

Он легко вписывается в cronjobs и создает автоматизированные процессы резервного копирования.


Реальный пример для лучшего понимания:

Если вы хотите синхронизировать следующий путь от сервера A до сервера B:

rsync -avz /var/www/ user@server-ip:/var/www/

Эта команда:

  • Только изменения папок /var/www Переводы

  • Обновляет его в пункте назначения.

  • Обеспечивает безопасную передачу через SSH


Краткое изложение для новичков в rsync:

ОсобенностьОбъяснение
Основное приложениеПередача данных и синхронизация папок
Главное преимуществоПередаются только изменения, а не весь файл.
БезопасностьИспользование SSH для безопасной передачи данных
ВысокоскоростнойИз-за алгоритма дельта-переноса
Профессиональный и удобный для сервераЛучший инструмент для резервного копирования и миграции между VPS

3. Базовый синтаксис rsync

Общая структура rsync Подобно другим файловым инструментам, таким как SCP-1811 является:

rsync [OPTIONS] منبع مقصد

Простой локальный пример:

  • Создайте две тестовые папки в локальной системе.

  • Выполнение:

    rsync -a dir1/ dir2

    В этом случае только содержание dir1 К dir2 Перемещается именно он, а не сама папка.

Вариант (архив) рекомендуется, потому что:

  • Рекурсивно синхронизирует каталог

  • Сохраняет права собственности на файл, время изменения и разрешения

Важно: если вы добавите “/” в конце исходного пути, будет синхронизировано только содержимое каталога; если вы этого не сделаете, будет перенесена сама исходная папка.


4. Запустите безопасный предварительный просмотр с помощью --пробный прогон

Перед выполнением чувствительных операций (особенно при использовании таких опций, как --удалить вы используете), лучше сначала провести пробный запуск:

rsync -anv --delete /مسیر/منبع/ /مسیر/مقصد/
  • Вариант Или --пробный прогон Имитирует операции без внесения изменений

  • (подробный) Предоставляет подробный вывод о синхронизации или удалении файлов.

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


Как использовать Rsync для синхронизации локальных и удаленных каталогов
Как использовать Rsync для синхронизации локальных и удаленных каталогов

5. Передача и извлечение файлов между локальной системой и сервером

Отправить на сервер (Push)

Чтобы синхронизировать локальный каталог с сервером:

rsync -a ~/local-dir/ user@remote-server:/remote/path/
  • : Сохранить атрибуты файла

  • ~/local-dir/: Местный маршрут

  • пользователь@удалённый-сервер: Адрес пользователя и сервера

  • :/удаленный/путь/: Путь на сервере

Если в конце источника находится “/”, отправляется только содержимое папки; в противном случае передается и сама папка.

Получить с сервера (Pull)

Обратная операция: Синхронизация с сервера на локальную систему:

rsync -a user@remote-server:/remote/path/ ~/local-dir/

Опять же, важно обратить внимание на косую черту в исходном пути (в данном случае это путь к серверу), поскольку она определяет поведение синхронизации.


6. Расширенные параметры rsync

  • : Сжимать данные при отправке для уменьшения использования сети

  • : Сочетание --прогресс и --частичный Что позволяет отображать ход выполнения передачи и разрешать продолжение незавершенных передач.

Пример:

rsync -azP ~/local/dir/ user@remote:/remote/dir/
  • --удалить: Удалить файлы, которые существуют в месте назначения, но больше не существуют в источнике (подходит для зеркалирования)

  • --исключать и --включать: Фильтрация файлов/папок для более точного взаимодействия

  • --резервное копирование и --backup-dir: Создайте резервную копию удаленных файлов в отдельном пути


7. Синхронизация расписания с Cron

Чтобы запустить периодическую синхронизацию, вы можете rsync в крон Расписание:

  • Редактировать кронтаб:

    crontab -e
  • Пример ежедневного задания cron для синхронизации:

    0 3 * * * /usr/bin/rsync -a --delete /var/www/html/ user@remote:/backups/html/

    Эта команда запускается каждый день в 3 часа ночи и синхронизирует локальный каталог с версией сервера.

Важные рекомендации по cron-job:

  • От абсолютных путей к rsync и использовать каталоги

  • Настройка входа по SSH-ключу без пароля

  • Сохраняйте вывод cron в файл журнала или обрабатывайте ошибки


8. Устранение распространенных проблем и передовой опыт

Некоторые распространенные проблемы при использовании rsync И ее решения:

  • Ошибка в пути источника/назначения: Использование --пробный прогон Для подробного обзора

  • Нежелательное удаление файлов: Только когда мы абсолютно уверены --удалить Давайте использовать

  • Ошибки разрешений: с Сохраняйте права собственности и разрешения.

  • Проблемы автоматизации: Используйте полные пути и аутентификацию SSH без пароля


Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может понравиться

Как установить IBSng на CentOS 6/7

Руководство по установке IBSng на CentOS 6/7 В этой статье приведено руководство по установке IBSng на CentOS 6/7, которое поможет вам…

Как войти на сервер Windows через удаленный рабочий стол

Как подключиться к серверу Windows через удалённый рабочий стол. Программное обеспечение для подключения к удалённому рабочему столу предоставляется бесплатно во всех версиях…