LINUX.ORG.RU
ФорумAdmin

Как заливать только новое файло на ФТП при помощи скрипта?


0

0

Я вот честно говоря не понимаю как этого добится.
Пишу под перлом bash, csh, sh
ПО БАРАБАНУ!!!!
Вобщем надо сделать автоматическую закачку директории с сайтом.
Но так как она весит 30 метров каждый раз заливать её целиком по диал апу - сами понимаете!!! 8((
Так вот мож кто делал?
Поделитесь если не скриптом то идеей!
Зарание спасибо.

воспользуйся lftp. он умеет как скачивать, так и закачивать.

gc
()

Проблема в чем: как закачать или как узнать, ЧТО закачивать?

Вторая, ИМХО, решается путем получения [рекурсивного] списка файлов с датами создания с удаленной машины; после чего сравниваем даты, не совпадает -- заливаем.

Obidos ★★★★★
()

wget -m не подойдет?

anonymous
()

To Obidos%
Дело в том, что при заливке на фтп время создания файла ставится временем его заливки!!! 8((

Defender
() автор топика

Тогда придется вести лог того, когда какие файлы заливали.

Obidos ★★★★★
()

Очередная мысль: по большому счету можно отталкиваться от двух вещей:
длина файла (осторожнее с binary/text mode transfers!) плюс некая CRC
(сойдет md5sum). 

Базу храним локально.

Набросок алгоритма: 
1. Берем файл, смотрим в базу. Если брать нечего (обработали все
файлы), идем на п.5
2. Если фактическая длина файла не равна той, что указана в базе,
то заливаем, обновляем базу ДЛЯ ЭТОГО ФАЙЛА, идем на п.1
3. Смотрим контрольную сумму. Не совпало -- заливаем, обновляем базу
ДЛЯ ЭТОГО ФАЙЛА, идем на п.1
4. Если еще остались файлы, идем на п.1

А вообще, IMHO, наилучшим решением в таких случаях будет rsync или cvs
(но это надо пинать провайдера/хостера).

Obidos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.