1. Предпосылки
Для выполнения rsync Между локальной системой и удаленным сервером необходимо:
Два устройства: одно локальное (ваш компьютер) и одно Linux-сервер (VPS или выделенный сервер)
rsyncУстановлено на обеих системахДоступ по SSH между двумя системами (чтобы вы могли общаться без постоянного ввода паролей)
Открытый ключ SSH на целевом сервере в файле
авторизованные_ключибыть размещенным
2. Концепция и функции rsync (специализированная и понятная версия для новичков и профессионалов)
rsync — это мощный инструмент командной строки в Linux, который используется для Синхронизация (Sync) и Передача данных Он используется между двумя путями, независимо от того, находятся ли эти пути в одной системе или на двух отдельных серверах.
Но почему rsync так популярен?
Из-за этого Вместо того чтобы переносить файлы целиком, он переносит только те части, которые были изменены.
Как именно работает rsync? (Простое и точное понимание)
При запуске rsync инструмент в первую очередь:
Структура и содержание двух треков (например, сравнивает папку назначения и исходную папку).
Проверки Какие файлы новые, какие были изменены, а какие были удалены или не изменены?.
Вместо того, чтобы отправлять весь файл, просто Часть данных, которые изменились Переводы.
Эта техника называется:
Алгоритм дельта-передачи
Этот алгоритм rsync Очень быстро и эффективно Да, потому что:
Уменьшается потребляемая полоса пропускания.
Время перевода значительно короче.
Ресурсы ЦП на сервере задействованы меньше
Простой пример для лучшего понимания функциональности rsync
Предположим, у вас есть файл размером 1 ГБ, и из него изменилось только 5 МБ.
Распространенные инструменты, такие как
SCP-1811Они заново загружают весь 1 ГБ.Но rsync отправляет только те же самые измененные 5 МБ..
Это означает:
Больше скорости
Меньше использования интернета
Меньше нагрузки на сервер
rsync и серверы: почему это лучший инструмент для управления серверами?
Когда на Сервер Или VPS Вы работаете, вам обычно нужно:
Перемещение резервных копий между двумя серверами
Переместить файлы сайта с текущего сервера на новый сервер
Всегда синхронизируйте важные папки (например, /var/www).
Передача больших файлов без потери пропускной способности
Во всех этих случаях rsync является лучшим выбором, потому что:
Безопасная передача по SSH
rsync использует протокол SSH для передачи, поэтому:
Данные зашифрованы.
Нет необходимости открывать дополнительные порты
Безопасность связи гарантирована.
Удалить лишние файлы в месте назначения
С флагом --удалить Он может сохранять пункт назначения точно таким же, как и источник.
Резюме
Если во время передачи прервется подключение к Интернету, rsync перенесет оставшуюся часть файла, а не с нуля.
Подходит для автоматизации
Он легко вписывается в cronjobs и создает автоматизированные процессы резервного копирования.
Реальный пример для лучшего понимания:
Если вы хотите синхронизировать следующий путь от сервера A до сервера B:
Эта команда:
Только изменения папок
/var/wwwПереводыОбновляет его в пункте назначения.
Обеспечивает безопасную передачу через SSH
Краткое изложение для новичков в rsync:
| Особенность | Объяснение |
|---|---|
| Основное приложение | Передача данных и синхронизация папок |
| Главное преимущество | Передаются только изменения, а не весь файл. |
| Безопасность | Использование SSH для безопасной передачи данных |
| Высокоскоростной | Из-за алгоритма дельта-переноса |
| Профессиональный и удобный для сервера | Лучший инструмент для резервного копирования и миграции между VPS |
3. Базовый синтаксис rsync
Общая структура rsync Подобно другим файловым инструментам, таким как SCP-1811 является:
Простой локальный пример:
Создайте две тестовые папки в локальной системе.
Выполнение:
В этом случае только содержание
dir1Кdir2Перемещается именно он, а не сама папка.
Вариант -а (архив) рекомендуется, потому что:
Рекурсивно синхронизирует каталог
Сохраняет права собственности на файл, время изменения и разрешения
Важно: если вы добавите “/” в конце исходного пути, будет синхронизировано только содержимое каталога; если вы этого не сделаете, будет перенесена сама исходная папка.
4. Запустите безопасный предварительный просмотр с помощью --пробный прогон
Перед выполнением чувствительных операций (особенно при использовании таких опций, как --удалить вы используете), лучше сначала провести пробный запуск:
Вариант
-нИли--пробный прогонИмитирует операции без внесения изменений-в(подробный) Предоставляет подробный вывод о синхронизации или удалении файлов.
Этот предварительный просмотр поможет вам точно увидеть, что произойдет, прежде чем вы удалите файлы, и избежать рискованных ошибок.

5. Передача и извлечение файлов между локальной системой и сервером
Отправить на сервер (Push)
Чтобы синхронизировать локальный каталог с сервером:
-а: Сохранить атрибуты файла~/local-dir/: Местный маршрутпользователь@удалённый-сервер: Адрес пользователя и сервера:/удаленный/путь/: Путь на сервере
Если в конце источника находится “/”, отправляется только содержимое папки; в противном случае передается и сама папка.
Получить с сервера (Pull)
Обратная операция: Синхронизация с сервера на локальную систему:
Опять же, важно обратить внимание на косую черту в исходном пути (в данном случае это путь к серверу), поскольку она определяет поведение синхронизации.
6. Расширенные параметры rsync
-з: Сжимать данные при отправке для уменьшения использования сети-П: Сочетание--прогресси--частичныйЧто позволяет отображать ход выполнения передачи и разрешать продолжение незавершенных передач.
Пример:
--удалить: Удалить файлы, которые существуют в месте назначения, но больше не существуют в источнике (подходит для зеркалирования)--исключатьи--включать: Фильтрация файлов/папок для более точного взаимодействия--резервное копированиеи--backup-dir: Создайте резервную копию удаленных файлов в отдельном пути
7. Синхронизация расписания с Cron
Чтобы запустить периодическую синхронизацию, вы можете rsync в крон Расписание:
Редактировать кронтаб:
Пример ежедневного задания cron для синхронизации:
Эта команда запускается каждый день в 3 часа ночи и синхронизирует локальный каталог с версией сервера.
Важные рекомендации по cron-job:
От абсолютных путей к
rsyncи использовать каталогиНастройка входа по SSH-ключу без пароля
Сохраняйте вывод cron в файл журнала или обрабатывайте ошибки
8. Устранение распространенных проблем и передовой опыт
Некоторые распространенные проблемы при использовании rsync И ее решения:
Ошибка в пути источника/назначения: Использование
--пробный прогонДля подробного обзораНежелательное удаление файлов: Только когда мы абсолютно уверены
--удалитьДавайте использоватьОшибки разрешений: с
-аСохраняйте права собственности и разрешения.Проблемы автоматизации: Используйте полные пути и аутентификацию SSH без пароля
Заключение
rsync Это очень мощный и оптимизированный инструмент для синхронизации данных между локальной машиной и сервером. Благодаря алгоритму дельта-передачи этот инструмент представляет собой экономичное, безопасное и точное решение для резервного копирования, переноса данных и создания зеркальных сред. Используя расширенные параметры, поэкспериментируйте с --пробный прогон и планирование с кронВы можете оптимизировать, защитить и автоматизировать процесс синхронизации.









