Rsync — приложение для удаленной/локальной синхронизации файлов. Оно использует алгоритмы, которые сводят к минимуму количество синхронизированных (перенесенных) данных. Если данные уже переносились ранее и после этого не были изменены, то они не будут синхронизированы заново.
Rsync входит в состав почти всех дистрибутивов. Его всегда можно установить из стандартных репозиториев.
Ubuntu/Debian
sudo apt-get install rsync -y
Centos/RedHat
sudo yum install rsync -y
или
sudo dnf install rsync -y
ArchLinux
sudo pacman -S rsync -y
Синтаксис Rsync очень похож на синтаксис таких утилит как SSH, SCP и т.д.
Для того чтобы рассмотреть работу rsync в рамках локальных синхронизаций, создадим два тестовых каталога (папки) и некоторое количество тестовых файлов. Выполним последовательно следующие команды:
:~$ cd /tmp/
:/tmp$ mkdir papka1
:/tmp$ mkdir papka_new
:/tmp$ touch papka1/hoster.ru.{1..99}
Первой командой мы переходим в папку /tmp (директория для хранения временных файлов) что бы случайно не повредить рабочую систему.
Далее создаем папки: papka1 и papka_new и в папке 1 создаем 99 файлов с названием hoster.ru.номер
svetozar@Jarvis:/tmp$ ls papka1/
hoster.ru.1 hoster.ru.15 hoster.ru.20 hoster.ru.26 hoster.ru.31 hoster.ru.37 hoster.ru.42 hoster.ru.48 hoster.ru.53 hoster.ru.59 hoster.ru.64 hoster.ru.7 hoster.ru.75 hoster.ru.80 hoster.ru.86 hoster.ru.91 hoster.ru.97
hoster.ru.10 hoster.ru.16 hoster.ru.21 hoster.ru.27 hoster.ru.32 hoster.ru.38 hoster.ru.43 hoster.ru.49 hoster.ru.54 hoster.ru.6 hoster.ru.65 hoster.ru.70 hoster.ru.76 hoster.ru.81 hoster.ru.87 hoster.ru.92 hoster.ru.98
hoster.ru.11 hoster.ru.17 hoster.ru.22 hoster.ru.28 hoster.ru.33 hoster.ru.39 hoster.ru.44 hoster.ru.5 hoster.ru.55 hoster.ru.60 hoster.ru.66 hoster.ru.71 hoster.ru.77 hoster.ru.82 hoster.ru.88 hoster.ru.93 hoster.ru.99
hoster.ru.12 hoster.ru.18 hoster.ru.23 hoster.ru.29 hoster.ru.34 hoster.ru.4 hoster.ru.45 hoster.ru.50 hoster.ru.56 hoster.ru.61 hoster.ru.67 hoster.ru.72 hoster.ru.78 hoster.ru.83 hoster.ru.89 hoster.ru.94
hoster.ru.13 hoster.ru.19 hoster.ru.24 hoster.ru.3 hoster.ru.35 hoster.ru.40 hoster.ru.46 hoster.ru.51 hoster.ru.57 hoster.ru.62 hoster.ru.68 hoster.ru.73 hoster.ru.79 hoster.ru.84 hoster.ru.9 hoster.ru.95
hoster.ru.14 hoster.ru.2 hoster.ru.25 hoster.ru.30 hoster.ru.36 hoster.ru.41 hoster.ru.47 hoster.ru.52 hoster.ru.58 hoster.ru.63 hoster.ru.69 hoster.ru.74 hoster.ru.8 hoster.ru.85 hoster.ru.90 hoster.ru.96
У нас также есть пустая папка(каталог) papka_new.
Для синхронизации содержимого каталога papka1 с каталогом papka_new локально (в рамках одного компьютера, или сервера), нужно выполнить команду:
rsync -r papka1/ papka_new
Опция -r означает рекурсивный, которая необходима для каталога синхронизации.
Можно использовать и флаг -a :
rsync -a papka1/ papka_new
Опция -a представляет собой сочетание из флагов в том числе и -r.
-a, —acrchive- работа в режиме архивирования, сохраняются права доступа и информация о владельцах.
Эта опция используется чаще чем -r и, как правило, используется по умолчанию.
Документация по Rsynс на русском: http://wiki.opennet.ru/Rsync