Unix: синхронизировать каталог с каталогом SFTP

1

У меня есть веб-сайт на локальном компьютере под управлением Mac OS X. Мне интересно, есть ли какая-либо встроенная команда, которую я могу запустить в Терминале, которая будет загружать этот веб-сайт на мой веб-сервер через SFTP. Установка новых команд через MacPorts возможна. Большим бонусом было бы то, что он загружал только те файлы, которые нужно обновить, а не все остальное.

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

Есть хорошие советы?

Обновить : Этот вопрос задавался как по SFTP, так и по FTP, но я получил ответ только по SFTP. rsync кажется, делает это очень хорошо, когда сервер поддерживает SSH, но если я правильно понял, rsync не поддерживает FTP. Я все еще ищу хорошее решение для FTP, поэтому открыли другой вопрос для этого.

Svish
источник

Ответы:

1

использование Rsync , Его цель - синхронизировать удаленные / локальные файлы.

rsync -avz --delete source-address destination-address

Пожалуйста, прочитайте документацию, чтобы понять, какие есть доступные варианты и как их использовать. (как разница между "dir" и "dir /")

Конечно, вы также можете использовать scp -r, но rsync - лучшее решение.

Denilson Sá Maia
источник
будет ли это сделать одну или двустороннюю синхронизацию?
Svish
Rsync выполняет одностороннюю синхронизацию от источника к месту назначения.
fideli
Это односторонняя синхронизация (и из вашего вопроса, кажется, вам нужна односторонняя синхронизация). Для двусторонней связи я лично использую Unison ( cis.upenn.edu/~bcpierce/unison ). Но у двусторонней синхронизации есть другие типы проблем (файл был изменен на обоих хостах, что делать?) И, следовательно, немного сложнее.
Denilson Sá Maia
да, это односторонний путь, который я хочу. Это как-то поддерживает ftp?
Svish
1
Протокол Rsync отличается от протокола FTP. Большая сила rsync заключается в том, что он определяет довольно близко к минимальному набору изменений для отправки для каждого обновления, сравнивая назначение с источником. FTP не может этого сделать. Самый простой способ настроить FTP потребует отправки всего сайта для каждого обновления. В качестве альтернативы, можно отслеживать последние изменения в источнике, но я гарантирую, что в какой-то момент вы будете не синхронизированы с тем, что должно быть отправлено и что на самом деле нужно отправить. Если ваш сайт маленький, отправка целиком в порядке.
mpez0