rsync - синхронизация файлов
rsync – удобная утилита для синхронизации файлов или директорий. Передавать файлы можно поверх ssh. При синхронизации пересылаются только изменения, что способствует минимизации трафика.
Примеры применения
Скопировать полностью структуру фалов и папок из /home/data1/ в /home/other/data2/:
rsync -av /home/data1/ /home/other/data2/
Наличие завершающих слешей в /home/data1/ файла обязательно, иначе результат копирования будет выглядеть так:
/home/other/data2/data1/
Выполнить копирование на удалённую систему по ssh:
rsync -rvz /home/data1/ user@server.com:/home/data1/
Задать альтернативный порт ssh:
rsync -rvz -e 'ssh -p 10022' /home/data1/ user@server.com:/home/data1/
Исключить некоторые файлы:
rsync -rvz /home/data1/ --exclude="tmp/*" --exclude="*~" user@server.com:/home/data1/
Не учитывать пользователя, группу и права при передаче:
rsync -rvz --no-p --no-o --no-g /home/data1/ user@server.com:/home/data1/
Описание опций
- -a, --archive – архивный режим, включает рекурсивное копирование и сохранение прав и владельца (ключи rlptgoD)
- -t, --times – обновлять время модификации файла на приёмной стороне. При отсутствии этой опции или -a становиться неэффективной оптимизация передачи по времени изменения файлов
- -c, --checksum – использование сверки по контрольным суммам, а не по времени изменения и размеру
- --size-only – использование для сверки только размер файлов
- -r – рекурсивный режим (копирование всех подпапок и файлов в них)
- -v – подробные вывод операций
- -z – компрессия данных при передаче
- -p – сохранять права
- --del – удалить файлы в папке назначения которых нет в источнике (точная копия)
- -R – использовать относительные пути при создании символических ссылок
- --numeric-ids – не транслировать имена владельца и группы в цифровые UID и GID, оставить на удалённой стороне номера как есть
- --bwlimit=KBPS – ограничение пропускной способности, чтобы не забивать канал (Kbit/s)
- --ignore-errors – продолжать копирование и удаление после появления ошибок
- -h – вывод результатов с человеко-читаемом формате
- -A, --acls – сохранение списков ACL
- -H, --hard-links – сохранение жестких ссылок
- -S, --sparse – оптимизировать разреженные файлы
- -x, --one-file-system – не выходить за пределы текущей точки монтирования
Обсуждение