Пусть есть два каталога: на локальной машине и на удалённой. Предполагаем, что изменения происходит только в одном месте (для объединения параллельных изменений нужно использовать средства управления версиями вроде subversion, а не средства синхронизации). Нужно перенести все произошедшие изменения в другой из них. Это и есть задача синхронизации.
Обычно синхронизация двух каталогов делается с помощью Rsync и SSH.
Пусть изменяется удалённый каталог, копируем его на локальную машину так:
$ rsync -avz --delete -e ssh логин@удалённый.хост:путь/откуда/ путь/куда
Если же «отражаем» локальный каталог на удалённую машину (выкладываем изменённый сайт на хостинг), то
$ rsync -avz --delete -e ssh путь/откуда/ логин@удалённый.хост:путь/куда
Полезно поиграться с командой добавляя и убирая слэш («/») после названия исходного каталога, чтобы понять, что он делает (или почитать
man rsync
). Потренироваться, кстати, можно и с двумя локальными каталогами.Если удалять файлы, исчезнувшие в исходном каталоге, но присутствующие в целевом, не нужно — ключ
--delete
убрать.
6 коммент.: