rsync — один из старейших и самых проверенных инструментов для копирования и синхронизации файлов в системах Unix/Linux. Он ценится за свою скорость, гибкость и минимальную нагрузку на сеть при передаче данных. Благодаря использованию алгоритма дельта-копирования rsync пересылает только изменённые части файлов, экономя время и ресурсы.
Синтаксис:rsync [опции] <источник> <назначение>
Основные возможности и ключевые опции
Ключевые особенности rsync:
— Передача только изменённых частей файлов
— Поддержка копирования по SSH
— Сохранение прав доступа, владельцев и временных меток
— Работа с символьными ссылками, жесткими ссылками и устройствами
— Возможность удаления файлов в целевой папке, отсутствующих в исходной
— Поддержка фильтров и исключений
Часто используемые ключи:
| Ключ | Описание |
|---|---|
| -a | Архивный режим (копирование со всеми метаданными) |
| -v | Подробный вывод процесса копирования |
| -z | Сжатие данных при передаче |
| -P | Показ прогресса и возможность докачки (Эта опция говорит rsync не удалять частично загруженные файлы, если передача была прервана.) |
| —delete | Удаление файлов в целевой директории, которых нет в исходной |
| -e «ssh» | Передача файлов через SSH |
| —exclude | Исключение файлов и директорий по маске |
| —info=progress2 | Показать общий прогресс передачи файлов |
| —bwlimit=10M | Ограничить скорость rsync до 10MB/sec (поддерживает суффиксы: K, M, G) |
Примеры использования
Локальная синхронизация директорий:rsync -av /home/user/source/ /home/user/backup/
Папка source синхронизируется с папкой backup. Важно: слэш на конце указывает, что нужно копировать содержимое, а не саму папку.
Копирование через SSH:rsync -avz -e ssh /home/user/source/ user@remote-server:/home/user/backup/
Передача файлов на удалённый сервер с использованием сжатия.
Зеркалирование папки с удалением лишних файлов:rsync -av --delete /home/user/source/ /home/user/backup/
В целевой папке будут удалены файлы, которых больше нет в исходной.
Исключение определённых файлов:rsync -av --exclude '*.txt' /home/user/source/ /home/user/backup/
Файлы с расширением .txt копироваться не будут.