LINUX.ORG.RU

выкачивание файлов по http или создание полноценного загрузчика зеркала

 , , ,


1

2

в общем идея такая: нужно написать скрпит который будет выкачивать нужные мне файлы по http при некоторых условиях, допустим появилось что то новое, изменился размер и тд. Что то типо debmirror а.

Уважаемые знатоки, подскажите пожалуйста что нужно юзать curl , wget и тд и тп и с чего начать. хочу выкачать данный репозиотрий и поставить проверку изменений в крон, и в случае каких то изменений докачивать http://repo.zabbix.com/zabbix/2.4/debian/

тебе нужно распарсить даты:

$ wget -O - "http://repo.zabbix.com/zabbix/2.4/debian/" 2>/dev/null |\
sed -rn '/Parent Directory/b;s/.*<a href="([^"]+)">.*\s+(\S+\s+\S+)\s+-\s*$/\1 \2/p'
conf/ 11-Sep-2014 11:25
db/ 18-Dec-2014 15:36
dists/ 11-Sep-2014 12:08
pool/ 11-Sep-2014 12:08

даты и имена сохранить в файле.

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

emulek
()

а чем тебя дебмиррор не устраивает для этой задачи?

а вообще - python, 20-30 строк. отслеживаем Release, по нему отслеживаем Packages (или сразу отслеживаем Packages), сравниваем с эталонным списком, докачиваем нужное.

odii
()
Ответ на: комментарий от odii

сделал так /usr/bin/debmirror --host=http://repo.zabbix.com/zabbix/2.4/ --root=debian --method=http --dist=wheezy --section=main,contrib,non-free --arch=amd64 --ignore-release-gpg --progress /home/repo/

показало ошибку Errors: Download of dists/wheezy/Release failed: 500 Can't connect to http::80 Failed to download some Release or Release.gpg files! WARNING: releasing 1 pending lock...

pyata4ka
() автор топика
Ответ на: комментарий от odii

/usr/bin/debmirror --host=http://repo.zabbix.com --root=/zabbix/2.4/debian/ --method=http --dist=wheezy --section=main,contrib,non-free --arch=amd64 --ignore-release-gpg --progress /home/repo/

так же Errors: Download of dists/wheezy/Release failed: 500 Can't connect to http::80 Failed to download some Release or Release.gpg files! WARNING: releasing 1 pending lock...

pyata4ka
() автор топика
Ответ на: комментарий от pyata4ka

Почему бы? Почти тот же rsync получается.

Все равно, для того, чтобы узнать свойства файла, тебе надо либо его целиком выкачать, либо распарсить веб-страничку (как доктор Бэтти говорил в самом первом сообщении)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от pyata4ka

Блин, ты хоть строку скопировать можешь правильно? Тебе дают правильный ответ, а ты начинаешь ДО-ДУ-МЫ-ВАТЬ.

я специально сейчас проверил - всё работает, синхронизируется... а теперь найди разницу между тем, что я тебе дал, и тем, что ты в итоге написал...

Files to download: 28 MiB
[  0%] Getting: pool/main/z/zabbix-release/zabbix-release_2.4-1+wheezy.dsc... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix-release/zabbix-release_2.4-1+wheezy.dsc ==> 200 OK
ok
[  0%] Getting: pool/main/z/zabbix-release/zabbix-release_2.4-1+wheezy.tar.gz... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix-release/zabbix-release_2.4-1+wheezy.tar.gz ==> 200 OK
ok
[  0%] Getting: pool/main/z/zabbix-release/zabbix-release_2.4-1+wheezy_all.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix-release/zabbix-release_2.4-1+wheezy_all.deb ==> 200 OK
ok
[  0%] Getting: pool/main/z/zabbix/zabbix-agent_2.4.3-1+wheezy_amd64.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-agent_2.4.3-1+wheezy_amd64.deb ==> 200 OK (2s)
ok
[  1%] Getting: pool/main/z/zabbix/zabbix-frontend-php_2.4.3-1+wheezy_all.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-frontend-php_2.4.3-1+wheezy_all.deb ==> 200 OK (9s)
ok
[ 21%] Getting: pool/main/z/zabbix/zabbix-get_2.4.3-1+wheezy_amd64.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-get_2.4.3-1+wheezy_amd64.deb ==> 200 OK (1s)
ok
[ 22%] Getting: pool/main/z/zabbix/zabbix-java-gateway_2.4.3-1+wheezy_amd64.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-java-gateway_2.4.3-1+wheezy_amd64.deb ==>   0200 OK (1s)
ok
[ 25%] Getting: pool/main/z/zabbix/zabbix-proxy-mysql_2.4.3-1+wheezy_amd64.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-proxy-mysql_2.4.3-1+wheezy_amd64.deb ==> 200 OK (1s)
ok
[ 27%] Getting: pool/main/z/zabbix/zabbix-proxy-pgsql_2.4.3-1+wheezy_amd64.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-proxy-pgsql_2.4.3-1+wheezy_amd64.deb ==> 200 OK (1s)
ok
[ 29%] Getting: pool/main/z/zabbix/zabbix-proxy-sqlite3_2.4.3-1+wheezy_amd64.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-proxy-sqlite3_2.4.3-1+wheezy_amd64.deb ==>   200 OK (1s)
ok
[ 30%] Getting: pool/main/z/zabbix/zabbix-sender_2.4.3-1+wheezy_amd64.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-sender_2.4.3-1+wheezy_amd64.deb ==> 200 OK
ok
[ 31%] Getting: pool/main/z/zabbix/zabbix-server-mysql_2.4.3-1+wheezy_amd64.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-server-mysql_2.4.3-1+wheezy_amd64.deb ==>   0200 OK (4s)
ok
[ 41%] Getting: pool/main/z/zabbix/zabbix-server-pgsql_2.4.3-1+wheezy_amd64.deb... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix-server-pgsql_2.4.3-1+wheezy_amd64.deb ==>   0200 OK (4s)
ok
[ 51%] Getting: pool/main/z/zabbix/zabbix_2.4.3-1+wheezy.debian.tar.gz... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix_2.4.3-1+wheezy.debian.tar.gz ==> 200 OK (1s)
ok
[ 51%] Getting: pool/main/z/zabbix/zabbix_2.4.3-1+wheezy.dsc... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix_2.4.3-1+wheezy.dsc ==> 200 OK
ok
[ 51%] Getting: pool/main/z/zabbix/zabbix_2.4.3.orig.tar.gz... 	 #** GET http://repo.zabbix.com/zabbix/2.4/debian//pool/main/z/zabbix/zabbix_2.4.3.orig.tar.gz ==> 200 OK (20s)
ok
Downloaded 28 MiB in 52s at 562.43 kiB/s.
Everything OK. Moving meta files ...
Cleanup mirror.
All done.
odii
()
Ответ на: комментарий от crutch_master

Большое спасибо (( моя невнимательность ((

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

Почему http, а не rsync?

anonymous
()
Ответ на: комментарий от Eddy_Em

Или просто wget --mirror

Прокатывает только при хорошей связи. После обрыва и восстановлении связи качать не продолжает, дозакачка файлов в этом режиме не работает, только одиночнае файлы. А связь все время, как назло (или из-за настроек ростелекома), рвется на файлах размером в несколько сот мегабайт.

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