Хвостовой слэш — важно!
Слэш у источника = «содержимое». Без слэша = «сам каталог». Частый источник ошибок.
Копирует только различия между деревьями файлов; --delete делает приёмник копией источника и удаляет в нём лишнее.
rsync -avzP src/ dst/
синхронизировать (только изменения, прогресс)
rsync -avzP src/ user@host:/dst/
по SSH
rsync -avzn --delete src/ dst/
СНАЧАЛА dry-run зеркала
rsync -avz --exclude='cache/' src/ dst/
rsync -av --link-dest=/bak/prev src/ /bak/today/
снапшот-бэкап
rsync копирует, передавая только различия — быстро для повторных синхронизаций
и больших деревьев. Работает локально и по SSH.
Флаг -a (archive) = рекурсия + сохранение прав/времени/симлинков/владельцев.
-n (dry-run) показывает, что изменится, без единой записи на диск — всегда
проверяй им команду с --delete, прежде чем снять флаг. -a не включает
удаление в приёмнике: без --delete rsync только добавляет и обновляет файлы,
никогда не убирает лишнее.
| Ключ | Что делает | Пример |
|---|---|---|
-a --archive |
Архивный режим (rlptgoD) — рекурсия, права, время, симлинки, владельцы. | rsync -a src/ dst/ |
-v --verbose |
Подробный вывод — какие файлы переданы. | rsync -av src/ dst/ |
-n --dry-run |
Показать, что будет сделано, без единого изменения на диске. опасно | rsync -avn --delete src/ dst/ |
--delete |
Удалить в приёмнике файлы, которых нет в источнике — делает приёмник точной копией. опасно | rsync -av --delete src/ dst/ |
-z --compress |
Сжимать данные при передаче по сети. | rsync -avz src/ user@host:/dst/ |
-P |
Сокращение --partial --progress — докачка и индикатор прогресса. | rsync -avP src/ dst/ |
--exclude PATTERN |
Исключить файлы и каталоги по шаблону. | rsync -avz --exclude='cache/' src/ dst/ |
-e command |
Задать транспорт, например ssh с нестандартным портом. | rsync -avz -e 'ssh -p 2222' src/ host:/dst/ |
--bwlimit KBPS |
Ограничить скорость передачи, КБ/с. | rsync -avz --bwlimit=5000 big/ host:/dst/ |
--link-dest DIR |
Хардлинки на неизменённые файлы предыдущего снапшота — экономит место в бэкапах. | rsync -av --link-dest=/bak/prev src/ /bak/today/ |
-c --checksum |
Сравнивать файлы по контрольной сумме, а не по времени и размеру. | rsync -avc src/ dst/ |
Ничего не найдено. Попробуй запрос короче.
Слэш у источника = «содержимое». Без слэша = «сам каталог». Частый источник ошибок.
--delete делает dst точной копией src. Всегда сперва -n (dry-run) и проверь
список. Подстраховка: --backup --backup-dir=.
Хвостовой слэш у источника (см. вкладку про слэш).
Сравнение по mtime+размеру; если время «плавает» (разные ФС/часовые пояса) —
добавь -c (по контрольной сумме) или --modify-window=1.
Нужен -a (или -o/-g/-p по отдельности); для чужих владельцев — права root на
приёмнике. На FAT/NTFS владельцы не сохранятся.
Нормально (rsync сверяет каждый). -z помогает по сети; для разового архива в один
файл быстрее tar.
--delete удаляет в приёмнике всё, чего нет в источнике, без запроса
подтверждения и без корзины: перепутанные местами каталоги обнулят рабочие
данные за один запуск. Всегда проверяй такую команду с -n (dry-run) и читай
список удаляемых файлов, прежде чем снять флаг. Подстраховка на важных
данных — --backup --backup-dir= вместо прямого удаления.
Есть неточность? Сообщить об ошибке в статье