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
копироваться не будут.