Rsync — программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию. Взято с википедии 🙂
Плюсами rsync есть:
1. Скорость и трафик — синхронизация цепляет только те файлы, которые изменились, а значит нужно передавать меньше файлов и благодаря этому процесс проходит быстрее.
2. Права доступа — rsync переносит файлы с их правами доступа.
3. Скрытые файлы — переносятся также и скрытые файлы и папки.
4. Удобство — процесс синхронизации файлов и папок между серверами выполняется с помощью всего одной команды.
В этой заметке я запишу основные примеры использования rsync. Более детальную информацию можно прочитать в мане:
# rsync --help
Набор аргументов выглядит так:
rsync [опции] [откуда] [куда]
Частоиспользуемыми являются аругменты (взято с мана):
a — archive mode, keeps timestamps and permissions
z — compresses data during transfer, optional but recommended
v — verbose mode, will show you progress and tell you where a transfer fails
r — recursive, grabs all files and folders within a folder
Синхронизация файлов и папок локально:
rsync -azvr /home/www/dev.domain.com /home/www/domain.com
Синхронизация с нашего сервера на удаленный:
rsync -azvr /home/www/dev.domain.com user@host:/home/www/domain.com
Синхронизация с удаленного сервера на наш:
rsync -azvr user@host:/home/www/domain.com /home/www/dev.domain.com
Синхронизация с исключениями:
rsync -azvr --exclude "/cache" --exclude ".htaccess" --exclude "robots.txt" /home/www/dev.domain.com /home/www/domain.com
Использовать rsync очень легко и удобно. Пользуйтесь! 🙂