Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Резервное копирование Rsync в Linux: синхронизация папок по SSH

Обновлено: 27.08.2026 · Официальная документация ↗

Почему обычное копирование scp или cp уступает Rsync?

При переносе папок с тысячами файлов или регулярном создании бэкапов утилита scp каждый раз копирует все данные заново. Если процесс прервется на 90%, его придется запускать с нуля. Утилита Rsync использует умный алгоритм дельта-копирования: она сканирует исходную и целевую папки и передает только измененные части файлов, экономя часы времени и гигабайты интернет-трафика.

Ключевые преимущества утилиты Rsync:

ФункцияКак это помогает
ИнкрементностьПередаются только новые и изменившиеся файлы.
Сжатие на лету (-z)Данные сжимаются перед отправкой по сети, ускоряя передачу.
Сохранение прав (-a)Полностью сохраняются владельцы, группы, права доступа и таймстампы файлов.
ВозобновлениеПри обрыве связи передача продолжается с места остановки.

Практические команды работы с Rsync

  1. 1. Синхронизация локальных папок на одном сервере

    rsync -avzh /var/www/my_site/ /backup/my_site/

    Важнейшее правило слэша в конце пути:
    • Если указать /var/www/my_site/ (со слэшем) — скопируется содержимое папки.
    • Если указать /var/www/my_site (без слэша) — скопируется сама папка my_site целиком.

  2. 2. Копирование папки на удаленный сервер по SSH

    Отправляем локальную папку на удаленный сервер:

    rsync -avz -e "ssh -p 22" /var/www/site/ user@192.168.1.50:/backup/site/
  3. 3. Скачивание папки с удаленного сервера к себе

    rsync -avz -e "ssh -p 22" user@192.168.1.50:/var/www/site/ /local_backup/site/
  4. 4. Точная зеркальная копия с удалением лишнего (--delete)

    Флаг --delete удаляет из папки бэкапа те файлы, которые вы уже удалили в исходной папке:

    rsync -avz --delete /var/www/site/ /backup/site/
💡 Практика специалистов: При регулярных бэкапах баз данных по крону через Rsync никогда не синхронизируйте «сырые» файлы /var/lib/mysql на работающей СУБД — вы получите поврежденные таблицы. Сначала делайте логический дамп через mysqldump, а затем забирайте полученный .sql архив через rsync.

Частые вопросы (FAQ)

Что означают флаги -avz?

-a (archive) включает сохранение прав, рекурсию и симлинки; -v (verbose) выводит подробный список копируемых файлов; -z (compress) сжимает файлы при передаче по сети.

Как протестировать команду rsync без реального копирования и риска что-то удалить?

Добавьте флаг пробного запуска --dry-run (-n): rsync -avzn --delete source/ target/. Программа покажет список изменений на экране, не трогая диск.

Как увидеть индикатор прогресса и скорость передачи больших файлов?

Используйте флаг --progress или общий ключ -P (сочетание progress и partial): rsync -avzP source/ target/.

Как исключить определенные папки из синхронизации (кэш, node_modules)?

Используйте ключ --exclude: rsync -avz --exclude='node_modules' --exclude='.git' /src/ /dst/.

Полезные материалы
Рекомендуем