Назад | Перейти на главную страницу

Синхронизация файлов между локальным сервером и удаленным веб-сервером

У меня есть локальный (офисный) веб-сервер, который служит платформой для тестирования моего сайта. Также он работает как сервер SVN для управления кодом моих сайтов.

Также есть удаленный веб-сервер, на котором размещен мой настоящий веб-сайт. Мне нужен метод, чтобы установить программу или механизм на моем локальном сервере для синхронизации моего удаленного сервера с файловой системой моего локального сервера.

Эта синхронизация файлов может быть инициирована автоматическим методом, когда файл локального сервера был изменен, или если я готов инициировать синхронизацию вручную.

Итак, как средний пользователь Linux, я хотел бы знать, какой механизм можно использовать для достижения этого, или на самом деле я делаю правильные вещи в таких требованиях?

Для решения для автоматической синхронизации на основе rsync я бы использовал lsyncd. Он отслеживает изменения в локальной файловой системе и автоматически изменяет то же самое на удаленном сайте.

Вы также можете расширить его, чтобы выполнять дополнительные операции с файлами при их изменении.

Я бы, наверное, выбрал ручной способ переноса, но есть много способов реализовать его. Один из самых простых и достаточно безопасных методов - использовать rsync поверх ssh. Вы не только будете использовать зашифрованное соединение, но rsync (после первой синхронизации) будет передавать только внесенные вами изменения.

Базовый синтаксис:

rsync -<options> -e ssh /local/files user@remote.host.name:/remote/files

Есть много дополнительных опций, которые вы можете добавить, используя ssh-ключи, чтобы избежать паролей (и затем это можно было бы написать скриптом), например, и есть много интересных опций для синхронизации с rsync.