суббота, 16 мая 2009 г.

rsync синхронизация файлов

rsync — программа, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодировку данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.
rsyncd — демон, реализующий протокол rsync. По умолчанию использует TCP порт 873.

Опции rsync
-v -выводит имена обрабатываемых файлов;

-a -работа в режиме архивирования, сохраняются права доступа и информация о владельцах;

-H - сохранять жесткие ссылки, оставляя их на другом конце бэкапа;

-x - не выходить за пределы текущей точки монтирования;

--progress - показывать сколько процентов осталось до завершения и скорость передачи;

--delete - удалять из бэкапа файлы, которых уже нет на стороне источника. --delete отличается от

--delete-after тем, что удаление производится вначале,а не на завершающей стадии процесса бэкапа. --delete-after работает быстрее, так как не требует лишней стадии обхода списка файлов, но требует использования опции --force для обработки таких ситуаций как удаление файла и появление диретории с тем же именем;

--delete-excluded - удалять части которые уже есть на стороне бэкапа, но появились в списке исключения;

-n - режим тестирования, реально никаких действий по копированию не производится, только эмуляция;

-c - использование сверки по контрольным суммам, а не по времени изменения и размеру;


--compare-dest=DIR - сохранять новые и измененные файлы в отдельной директории,
не трогая на время копирования основную директорию назначения, в конце - разом,
путем переименования, обновить содержимое бэкапа;

--link-dest=DIR - использовать жесткие ссылки на файлы в DIR, например, для создания подобия снапшотов;

--ignore-errors - продолжать копирование и удаление после появления ошибок;

--max-delete - ограничение максимально числа удаляемых за один раз файлов и каталогов;

-A - сохранять не только права доступа, но и ACL;

--files-from=FILE - задать список директорий и файлов для бэкапа в файле;

Передача файлов на удаленную машину
rsync -e ssh /копируемая/директория/ user@host:/директория/для/сохранения/файла
Передача файлой в судаленной машины
rsync -e ssh user@host:/директория/на/сервере /директория/для/сохранения
При передачи по ssh, стандартное ssh сжатие лучше выключать, т.к. rsync при задании опции "-z" более оптимально сжимает передаваемые данные,
export RSYNC_RSH="ssh -c arcfour -o Compression=no -x"
rsync -a -z -v --bwlimit=16 /dir1 /dir2 user@test.ru:/dir3/
--bwlimit=16 ограничивает пропускную способность при копировании бэкапа в 16 Кбайт в сек

Копирование директорий
rsync -a /dir1/dir2 /dir3 - будет создана иерархия /dir3/dir2/файлы
rsync -a /dir1/dir2/ /dir3 - будет создана иерархия /dir3/файлы

Комментариев нет: