Вы можете использовать что-то вроде rsync
, которое будет синхронизировать что угодно и работать через соединение SSH. Однако вы можете рассмотреть возможность отделения вашего приложения от данных и использовать другие методы. Предположительно, если вы разрабатываете на своей машине, вы будете запускать локальные тесты, и локальные данные обычно не должны попадать на сайт. В этом случае, если вы запускаете что-то вроде SVN
локально, а затем используете клиент SVN на веб-сервере для загрузки обновлений, вы можете синхронизировать приложение, не затрагивая данные.
Конечно, когда вам это нужно, можно использовать rsync для загрузки всего, например, на новый сайт.
По своей природе rsync может плавно перезапускаться всякий раз, когда передача прерывается, поскольку он всегда сравнивает и источник, и пункт назначения, а затем передает только столько данных, сколько необходимо, чтобы пункт назначения был равен источнику. Это означает, что большинство ваших переводов будут выполняться намного быстрее, чем с FTP.
Если природа вашего веб-приложения требует регулярного обновления базы данных, не поддавайтесь искушению попробовать SVN, потому что системы контроля версий действительно хорошо работают только с файлами исходного кода. Кроме того, когда вы используете rsync для отправки обновления, вы должны убедиться, что база данных не активна, потому что она фактически находится в поврежденном состоянии, пока rsync не завершится успешно. Если вы всегда обновляете промежуточную папку на веб-сервере, а затем переносите ее в рабочую среду, когда база данных закрыта, это будет работать лучше всего.