Я ищу (в течение некоторого времени и с некоторым отчаянием) инструмент, который, я думаю, нужен большинству веб-разработчиков:
Быстрый, «ленивый», также известный как «дифференциальный» инструмент загрузки по FTP. Чтобы быстро загрузить (без особой проверки на стороне сервера) эти очень немногие измененные файлы с моего ПК (клиента) develeper на мой веб-сервер. Под виндой. Предпочтительно скрипт, поэтому предпочтительно исполняемый файл командной строки (или jar).
Должно ли ИМХО быть общей потребностью, все же я не нашел ничего убедительного:
В 99% случаев (помимо начальной загрузки) я хочу отправить только очень мало измененных файлов (но это как можно быстрее)
Да, я знаю: файловые системы FAT имеют проблемы с точностью времени, клиент или сервер могут иметь проблемы с часовым поясом наверху ... итерация проверки на стороне сервера по временным меткам (недостаточно), временным меткам, контрольным суммам (дорого), безусловно, все требует времени. => Мне было бы достаточно и максимально эффективно отслеживать изменения исключительно на стороне клиента (читайте: ведите список контрольных сумм дерева каталогов). Так как я загружаю только с одного клиента на один сервер. Таким образом, не должен ли ленивый режим с завязанными глазами, также известный как дифференциальный режим, быть лучшим решением, чтобы сэкономить еще несколько секунд? (2 секунды против 15 секунд означают для меня мир).
Я бы предпочел, чтобы SFTP имел немного более высокий уровень безопасности. Однако мой (дешевый) веб-хостер разрешает только аутентификацию по паролю (например, обычный FTP), а не аутентификацию с закрытым ключом (так что, помимо усложнения, Putty и т. Д. Не вариант, если я правильно понимаю ...)
Я бы предпочел избежать необходимости иметь дело с отдельным инструментом SSL, Putty, CygWin ... единственный .exe (или .jar), который будет вызываться с необходимыми параметрами, будет niiiiice, поэтому можно составить свой upload_clientA.bat
и перестань думать об этом ...
нужны исключения. Несколько папок / файлов, исключенных из загрузки (например, psd), но также несколько файлов на сервере (файлы конфигурации, которые не должны быть перезаписаны моей конфигурацией разработчика) должны быть невосприимчивыми к изменениям клиента. Это все, что мне нужно.
Грубо говоря, это сводится к следующему:
foo.exe upload
-s:d:\depot\webroot
-t:ftp.mywebhost.com:1234/www/
-mode:sftp -u:me -P:youwish
-lazyMode
-exclude /wp-config.php /cache/* /someElse
Смотря на...
Кто-нибудь знает о таком простом и быстром инструменте командной строки, как этот?
Cygwin позволит вам запустить ssh-сервер, а вы, в свою очередь, получите SFTP.
Вы можете легко управлять rsync через ssh. rsync дает вам дифференциальное и отложенное копирование, а ssh можно использовать для вашего безопасного транспорта - я вполне уверен, что существуют рабочие версии cygnus для обоих. rsync + ssh - очень широко используемая комбинация, но у меня создается впечатление единства http://www.cis.upenn.edu/~bcpierce/unison/ может немного лучше подойти к вашей ситуации.
Удачи!
Я думаю ты хочешь копия сайта. Он имеет все упомянутые вами функции и работает через FTP или SFTP.
sitecopy - это приложение для Unix, поэтому я не знаю, будет ли оно соответствовать вашему требованию «не иметь дела с Cygwin». Для клиентов Windows вы можете собрать его в Cygwin и распространять в комплекте с любыми необходимыми библиотеками DLL.