RSYNC — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 8: | Строка 8: | ||
'''-a''' - режим архива, сохраняет владельцев, временные метки, права, символьные ссылки | '''-a''' - режим архива, сохраняет владельцев, временные метки, права, символьные ссылки | ||
'''-d''' - синхронизация дерева каталогов, без синхронизации файлов находящихся внутри каталогов | '''-d''' - синхронизация дерева каталогов, без синхронизации файлов находящихся внутри каталогов | ||
+ | '''-i''' - отображение изменений между источником и назначением | ||
'''-r''' - режим рекурсии, синхронизация вместе с внутренними каталогами, а не только файлов верхнего уровня | '''-r''' - режим рекурсии, синхронизация вместе с внутренними каталогами, а не только файлов верхнего уровня | ||
'''-u''' - не перезаписывать измененные данные в месте назначения | '''-u''' - не перезаписывать измененные данные в месте назначения | ||
Строка 65: | Строка 66: | ||
Не создавать новые файлы на конечном сервере. Если необходимо обновлять(синхронизировать) только существующие файлы, не копируя вновь созданные, то используем опцию '''--existing''' | Не создавать новые файлы на конечном сервере. Если необходимо обновлять(синхронизировать) только существующие файлы, не копируя вновь созданные, то используем опцию '''--existing''' | ||
# rsync -rvz --existing /root/ root@192.168.0.5:/tmp/ | # rsync -rvz --existing /root/ root@192.168.0.5:/tmp/ | ||
+ | |||
+ | |||
+ | Просмотр изменений между источником и назначением, используем ключ '''-i''' | ||
+ | # rsync --progress -avzi /root/ root@192.168.0.5:/tmp/ | ||
+ | |||
+ | > - показывает, что файл был передан(синхронизирован) | ||
+ | f - показывает, что это файл | ||
+ | d - директория | ||
+ | s - показывает изменение размера | ||
+ | t - показывает изменение штампа времени | ||
+ | o - изменение владельца | ||
+ | g - изменение группы |
Версия 18:32, 14 мая 2015
Rsync - программа выполняющая синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). Rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.
Синтаксис:
# rsync options source destination
ключи
-a - режим архива, сохраняет владельцев, временные метки, права, символьные ссылки -d - синхронизация дерева каталогов, без синхронизации файлов находящихся внутри каталогов -i - отображение изменений между источником и назначением -r - режим рекурсии, синхронизация вместе с внутренними каталогами, а не только файлов верхнего уровня -u - не перезаписывать измененные данные в месте назначения -v - детализация -z - сжатие --delete - удаление файлов в точке назначения --existing - обновление только существующих файлов, не копируя новые --progress - показывать прогресс синхронизации(скорость, время, etc)
Примеры использования.
Синхронизация двух директорий на одном сервере
# rsync -rvz /root/ /tmp
При синхронизации rsync меняет метки времени и группу владельца
Для сохранения используется опция -a, которая показывает режим архива и включает в себя:
- рекурсивный режим
- сохраняет символические ссылки
- сохраняет разрешения (permissions)
- сохраняет временные метки
- сохраняет владельца и группу
# rsync -avz /root/ /tmp
Синхронизация одного файла
# rsync -av /root/Makefile /tmp
Синхронизация файлов с локальной машины на удаленную
# rsync -rvz /root/ root@192.168.0.5:/tmp/
Синхронизация файлов с удаленной машины на локальную
# rsync -rvz root@192.168.0.5:/tmp/ /root/
Синхронизация с удаленной машиной имеющей нестандартный порт ssh
# rsync -rvz -e 'ssh -p 2222' root@192.168.0.5:/tmp/ /root/
Не перезаписывать измененные данные в месте назначения(destination). Довольно типичная ситуация, если файл изменен на удаленной стороне, а мы не хотим перезаписать его старой версией из источника.
Используем опцию -u
# rsync -ruvz /root/ root@192.168.0.5:/tmp/
Синхронизация только дерева каталогов(без файлов). Используем опцию -d для синхронизации дерева каталогов, без синхронизации файлов находящихся внутри каталогов(файлы из корневой директории все равно синхронизируются)
# rsync -dv /root/ root@192.168.0.5:/tmp/
Удаление файлов в точке назначения. Если файл не присутствует на источнике, но присутствует на конечной машине(куда мы копируем), можно удалять такие файлы в процессе синхронизации.
Для этого используется опция --delete
# rsync -rvz --delete /root/ root@192.168.0.5:/tmp/
Не создавать новые файлы на конечном сервере. Если необходимо обновлять(синхронизировать) только существующие файлы, не копируя вновь созданные, то используем опцию --existing
# rsync -rvz --existing /root/ root@192.168.0.5:/tmp/
Просмотр изменений между источником и назначением, используем ключ -i
# rsync --progress -avzi /root/ root@192.168.0.5:/tmp/
> - показывает, что файл был передан(синхронизирован) f - показывает, что это файл d - директория s - показывает изменение размера t - показывает изменение штампа времени o - изменение владельца g - изменение группы