Синхронизация файлов по FTP

11

Мне нужно синхронизировать файлы на моем компьютере с сервером, к которому у меня есть только доступ по FTP. Поэтому я не могу использовать rsync (для этого нужен как минимум SFTP, но единственный доступный канал для меня - это простой ванильный FTP).

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

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

Рене Саарсоо
источник

Ответы:

14

Поскольку я не мог добраться wputдо работы, я искал альтернативу и нашел: ncftp .

В частности, ncftpput, похоже, делал почти то, для чего был разработан wput. Самое главное для меня, это не сбой, как wput. И действительно, ему удается загрузить только те файлы, которые не изменились, с помощью опции -z :

ncftpput -z -u user -p pass ftp.mydomain.com dir/name files-to-upload...
Рене Саарсоо
источник
отлично сработало для меня
Роман М
На OSX, установить с помощью: brew install ncftp.
Кенорб
1
Чтобы скопировать целые деревья каталогов, используйте -R.
Кенорб
+1 для использования не по прямому назначению -z для обозначения «noclobber» / «не перезаписывать»
barrycarter
Я хотел бы найти это 2 дня назад. Я отказался от ncftpget, так как на странице руководства не отображалось никаких «только более новых» «пропущенных» опций. Я бьюсь головой о lftp - от BASH до Python. Затем я дал еще одну попытку ncftp на Google и нашел ваше решение. Я посмотрел его для ncftpget (man-страница) - "-z / -Z Do (no) пытается возобновить передачу. По умолчанию попытка возобновить". Не звучит убедительно. Но, черт возьми, я искал именно эту опцию: загружать только новые файлы с помощью ncftpget. Я надеюсь, что этот комментарий поможет кому-то.
Ануп Наир
3

Конечно, и это называется wput

user7963
источник
Конечно! Как я не подумал об этом. Полностью забыл эту программу. Я думаю, что это сработает, но я вернусь, когда вернусь домой, чтобы попробовать ...
Рене Саарсоо
По некоторым причинам wput выдает «Ошибка сегментации», когда я пытаюсь загрузить что-либо.
Рене Саарсоо