Ключевые слова: (найти похожие документы)
From: Довганюк Сергей <dovganuk_sergey@mail.ru.>
Newsgroups: email
Date: Mon, 7 Nov 2005 14:31:37 +0000 (UTC)
Subject: Загрузка обновлений для справочных систем под Linux.
Во многих фирмах используются различные электронные справочники, будь то
законодательные или отраслевые и т.д. Их приходится обновлять. Сегодня
основным видом оперативного обновления справочников является обновление
через Internet.
Для удобства пользователей, да и администраторов, хотелось бы сделать
загрузку обновлений максимально незаметной. Многие справочники имеют
собственные средства для загрузки обновлений, но большинство из них
рассчитано на работу в Windows и использует простые алгоритмы закачки
через интернет, что часто приводит к увеличению времени их работы.
В ходе эксплуатации справочной системы Динаи-Гроссбух (Украина) мною был
написан скрипт для анализа списка обновлений, определения свежих
обновлений и их закачки:
(1) #!/bin/bash
(2) cd /opt/samba\ share/DINAI
(3) mv ./index ./index_old
(4) wget -N 'http://www.dinai.com/update/?C=M;O=A' -O ./index.html
(5) grep -G "[0,1,2,3,4,5,6,7,8,9][0,1,2,3,4,5,6,7,8,9]_[0,1,2,3,4,5,6,7,8,9][0,1,2,3,4,5,6,7,8,9]" ./index.html > ./index
(6) diff -a -b -B -u ./index ./index_old | awk -F '"' '/^-<img/ {print "http://www.dinai.com/update/"$6"GB-"$6}' > ./index_togo
(7) wget -nd -r -c -N -np -i ./index_togo -P ./updates -A DU*ddz
Для начала советую зайти по адресу http://www.dinai.com/update/?C=M;O=A
Там вы увидите что-то вроде этого:
04_02/ 08-Feb-2005 11:43 -
07_02/ 08-Feb-2005 11:43 -
08_02/ 08-Feb-2005 15:56 -
01_02/ 09-Feb-2005 13:02 -
09_02/ 09-Feb-2005 18:35 -
Это список папок содержащих обновления. Итак, в строке скрипта под
номером (4) мы загружаем этот список в файл index.html. Далее из этого
файла мы вычленяем только строки содержащие ссылки на папки с
обновлениями и сохраняем результат в файл index (5 строка).
Затем находим различия между ранее сделанной копией файла index -
index_old (3) и его новым содержимым (строка 6 "diff -a -b -B -u ./index
./index_old"). Выделяем при помощи awk новые строки, дополняем их до
нормального вида url и сохраняем в файл index_togo.
Осталось только указать wget загружать по ссылкам из файла index_togo
(7). Принимающий каталог - updates.
Для windows машин открываем с помощью samb'ы доступ к каталогу updates.
Запуск скрипта прописываем в cron.
Скрипт не самый оптимальный, но работает.