Пытаясь найти простой способ сделать загрузку только измененных файлов через FTP - PullRequest
5 голосов
/ 08 января 2009

Нужно найти способ загрузки файлов на мой сервер через FTP. Но только те, которые были изменены. Есть ли простой способ сделать это? Командная строка FTP-клиент или сценарий является предпочтительным. Спасибо, Джонас.

Ответы [ 9 ]

5 голосов
/ 08 января 2009

Самый надежный способ - создать хеши md5 для всех локальных файлов, которые вам нужны, и сохранить их в файле. Таким образом, файл будет содержать список имен файлов и их хэши md5. Сохраните этот файл на вашем FTP-сервере. Если вы хотите обновить файлы на вашем ftp-сервере, загрузите файл, содержащий список, сравните его со всеми вашими локальными файлами и загрузите файлы, которые были изменены (или являются новыми). Таким образом, вам не нужно беспокоиться о битах архива, дате изменения или просмотре размеров файлов, использование которых никогда не может быть надежным на 100%.

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

3 голосов
/ 08 января 2009

Вы действительно настаиваете на ftp, или вместо этого можете использовать rsync?


Если ftp является обязательным Идея mhenry1384 - это примерно то, что делает rsync (во всяком случае, половина из них, rsync также ищет время модификации для файлов, которые отличаются. ..).

2 голосов
/ 08 января 2009

(ожидание ответа на главный вопрос, прежде чем ответить)

Стратегия будет:

  1. Поиск файлов, измененных с использованием дат, времени, архивных битов или хэшей (в зависимости от ОС)
  2. Используя этот список, создайте сценарий FTP, помещающий эти файлы
  3. Запустите сценарий FTP.
1 голос
/ 07 апреля 2015

git-ftp работает очень хорошо:

apt-get install git-ftp

в папке приложения:

git config git.ftp.xxxx.url ftpservice.server.com/root/dir/for/ftp
git config git.ftp.xxxx.user myUsername
git config git.ftp.xxxx.password myPassword

следует только в том случае, если цель обновлена ​​другим ftp-клиентом (она изменяет ftpservice.server.com/root/dir/for/ftp/git-ftp.log на текущий коммит)

git ftp catchup --scope xxxx

// редактирование источников //

git commit -m "new version"
git ftp push --scope xxxx

и вы можете увидеть, что происходит:

git ftp show --scope xxxx
git ftp log --scope xxxx
0 голосов
/ 05 июля 2015

Netbeans имеет хороший ftp. поддерживает выборочную загрузку, загрузка

0 голосов
/ 03 февраля 2014

Используя git-ftp , это относительно просто. Но это работает, только если ваш компьютер является единственным, который изменяет папку на FTP-сервере ...

Я слышал, что rsync тоже работает, но я не уверен в этом, я никогда не использовал rsync ... И это не ftp ...

0 голосов
/ 17 августа 2010

Я знаю, что это старая ветка, но пока я искал то же решение, я наткнулся на эту ссылку, которая может быть весьма полезна: Скрипт FTP

0 голосов
/ 08 января 2009

Jonas

Как часто файлы могут меняться?

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

0 голосов
/ 08 января 2009

Рассматривали ли вы использовать архивный бит в файле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...