У меня есть набор инструментов, которые периодически (примерно раз в день) генерируют полный набор статических HTML-страниц для сайта со связанной структурой папок и т. Д.
Затем мне нужно поместить этот файл на рабочий сервер, моя проблема в том, что на сервере работает IIS (я думаю, 6), и у меня есть только обычный FTP-доступ.
Мне нужен способ автоматизировать процесс публикации нового сайта, и он должен полностью заменять файлы каждый раз, когда он публикуется, например, удалить всю папку и содержимое, а затем разместить новые.
Мой исходный сервер - это машина ubuntu, и у меня есть полный контроль с этой стороны, я пробовал использовать CurlFTpFS, но, похоже, он слишком медленный для того, что я пытаюсь сделать, и зависает.
По возможности используйте rsync. Rsync позволяет вам генерировать файлы различий, которые показывают, что изменилось, что существует в целевом объекте, но не в источнике и т. Д. Это значительно облегчит задачу такого рода.
Есть несколько переупаковок rsync для Windows.
Напишите сценарий. Вы можете найти Expect подходящим, который не требует обучения для некоторых людей. Обычно я делаю что-то вроде этого, чтобы перенаправить ввод в bash:
ftp HOST<<_EOF
USER
PASSWORD
ls
_EOF
Yuu мог использовать FTP-клиент Kermit, у которого есть собственный язык сценариев / синтаксис для автоматизации загрузки по FTP. Кажется привередливым, но похоже, что он должен помочь
cwrsync - это порт rsync для Windows - его легко установить, если у вас есть права администратора (похоже, что у вас его нет). В качестве альтернативы, ваш хост настроил rsync на сервере, чтобы ПОЛУЧИТЬ из вашего Ubuntu, если это возможно. Если ни то, ни другое невозможно, возможно, поищите более гибкий хост, соответствующий вашим потребностям.
FTP и / или скрипты на основе fuse будут НАМНОГО сложнее, если у вас нет очень небольшого набора файлов - у вас, вероятно, истечет время ожидания, будет частичная загрузка и т. Д. Rsync ОЧЕНЬ прост и действительно предназначен для управления этим тип вызова.
Я бы проверил FUSE с ftpfs, таким образом вы могли бы просто смонтировать внешний сервер через ftpfs и работать с ним как с обычной файловой системой, поэтому просто напишите скрипт для обновления всей страницы. Я использую FUSE с ftpfs на моем Mac, и он там работает достаточно хорошо, поэтому я думаю, что Linux не должен иметь большого значения.
Пытаться lftp ; он поддерживает сценарии и т. д., а также поддерживает такие команды, как «mrm» (multi-remove) и «mput» (multi-put), которые должны быть полезны. И он упакован и т. Д. Для ubuntu, поэтому
aptitude install lftp
позволит вам легко попробовать.