Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: WGET докачка с возможностью разложить по каталогам  (Прочитано 559 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн larystyle

  • Автор темы
  • Новичок
  • *
  • Сообщений: 46
    • Просмотр профиля
Добрый день! Имеем сайтец с которого нужно ежедневно выкачивать обновления 1с (самораспаковывающийся архив в формате .exe) и раскладывать данные обновления по многочисленным каталогам, вопрос в следующем-с помощью wget можно скачать обновления во временный каталог, (и внимание - вопрос:) как и с помощью чего можно добиться того чтобы архив был положен в созданные для удобства каталогизации каталоги? В архивах есть текстовый файл с описанием (название, номер релиза ПО) того что было скачано, так же обновление ПО скачивается с сайта с таблицами, в таблицах есть название и версии ПО (надеюсь это поможет в решении поставленной задачи)! Заранее всем спасибо!

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3145
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Добрый день! Имеем сайтец с которого нужно ежедневно выкачивать обновления 1с (самораспаковывающийся архив в формате .exe) и раскладывать данные обновления по многочисленным каталогам, вопрос в следующем-с помощью wget можно скачать обновления во временный каталог, (и внимание - вопрос:) как и с помощью чего можно добиться того чтобы архив был положен в созданные для удобства каталогизации каталоги? В архивах есть текстовый файл с описанием (название, номер релиза ПО) того что было скачано, так же обновление ПО скачивается с сайта с таблицами, в таблицах есть название и версии ПО (надеюсь это поможет в решении поставленной задачи)! Заранее всем спасибо!

Итого, по очереди:

Код: Bash
  1. man wget
  2.  
И смотрим о ключиках
-O - то есть после этого ключа надо указывать <destination> (файл)
--directory-prefix - куда ложить скаченные файлики

Получаем что-то типа такого
Код: Bash
  1. wget http://site.com/exefile.exe -O /tmp/exefile.exe
  2. wget http://site.com/exefile.exe --directory-prefix=/tmp/
  3.  
И да, все можно сделать, в помощь unzip/gunzip (все что может распаковать архив), awk, sed, cat, grep, mkdir, cp, mv etc для того, что бы считать текстовый файл (надеюсь там не docx или еще что-то, тогда надо еще несколько "програм"), распарсить и положить все куда следует
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн larystyle

  • Автор темы
  • Новичок
  • *
  • Сообщений: 46
    • Просмотр профиля
Благодарю за скоростной ответ, проблема еще в том, что у нас создана дерево каталогов в которые и нужно распихивать файлы апдейтов, вопрос по прежнему открыт: как научить скрипт "узнавать" куда и что нужно ложить?!

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5674
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
larystyle, Если хотите получить прикладную консультацию научитесь выдавать информацию не вообще, а конкретно. Пример дерева, пример имени файла, пример текстового файла с описанием, как именно Вы хотите обработать архив и т.д.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3145
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Без структуры ваших каталогов, правил размещения в эти самые каталоги мы бессильны.
Простой пример "Напишите сочинение". Вопросы: тема сочинения, сроки сдачи, размер и т.д. Вы же описали проблему слишком широко. А такие задачи решения не имеют.

К примеру, если бы вы описали:

Структура архива:

Код: Bash
  1. <some file> # само обновление
  2. README # файл с версией и т. д., содержит тоже имя апдейта (ибо вычислять имя файла апдейта если честно может быть проблематично, и вообще в каком формате файл)
  3. Table # табличное представление (опять же какой формат файла)
  4.  

А еще лучше, приложили бы эти файлы к сообщению
« Последнее редактирование: 23 Май 2016, 14:19:35 от EvangelionDeath »
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

kononvaler

  • Гость
Сначала скачать  wget-ом , затем, если все машину линуксовые, распространить через rsync по заданным правилам.



Пользователь добавил сообщение 23 Май 2016, 14:22:09:
Хм,
Цитировать
В архивах есть текстовый файл с описанием (название, номер релиза ПО) того что было скачано, так же обновление ПО скачивается с сайта с таблицами, в таблицах есть название и версии ПО (надеюсь это поможет в решении поставленной задачи)! Заранее всем спасибо!
раз .ехе, то виндовые машины. При чем тут wget и Ubuntu в решении этой задачи?  ПО с таблицами и файлом описания на сайте техподдержки 1с? Не, не видал.
« Последнее редактирование: 23 Май 2016, 14:22:09 от kononvaler »

Оффлайн larystyle

  • Автор темы
  • Новичок
  • *
  • Сообщений: 46
    • Просмотр профиля
Да файлы *.exe - на линукс мы не можем скачать файл *.exe, и скопировать его в нужный каталог?

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3145
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Да файлы *.exe - на линукс мы не можем скачать файл *.exe, и скопировать его в нужный каталог?
Можем. Но вопрос остается открытым: где вся уточняющая информация? В общих чертах алгоритм такой:
- качаем архив (wget)
- распаковываем архив (unzip)
- смотрим нужные нам данные в текстовом файле (cat, grep, awk)
- переносим архив куда положено (mkditr, mv)
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

kononvaler

  • Гость
Да файлы *.exe - на линукс мы не можем скачать файл *.exe, и скопировать его в нужный каталог?
Можем, все можем что захочется, только от  "*.exe" в связи с отсутствием уточнений автора, напрягая дедукцию, следует что распространять надо НА виндовые машины. Поэтому решения разные будут, ни ssh ни rsync например не подойдут. Ждем Вангу, может что разъяснит.

Оффлайн larystyle

  • Автор темы
  • Новичок
  • *
  • Сообщений: 46
    • Просмотр профиля
Сори, постараюсь как можно подробнее разъяснить: файл скачивается с сайтеца, где в табличном варианте мы видим интересующие нас названия концигураций их версии и даты выхода, вопрос-мы можем считать каким то чудным образом строки из таблицы, те же названия конфигураций, версии и даты выхода, что бы не распаковывать exe-архив? Ниже прилагаю скрины откуда, что и куда качать.. если есть еще вопросы, ниже дополню...

P.S. в архиве рисунки - части сайта показывающие табличную структуру - откуда качаем, куда качаем...

P.S.S. насчет машин Windows или Linux - проблем нет, можно поднять виртуальную Linux (Ubuntu, Debian без GUI - этого за глаза хватит, после настройки если все получится и будет работать-можно выделить отдельный ПК).
Благодарю за любую конкретную помощь в решении данной проблемы!

Оффлайн scsiman

  • Активист
  • *
  • Сообщений: 335
    • Просмотр профиля
larystyle, пока всё равно конкретики ноль без палочки. Поэтому ответ такой же неконкретный и общий: пишите парсер (или scraper, гуглите web scraping) сайта. Что для этого надо?
1. Сформулировать правила, по которым "вот этот файл должен быть скачан вот в этот каталог".
2. Рассмотреть HTML-код страницы сайта с, как вы выражаетесь, "таблицами".
3. Написать парсер на удобном языке программирования или "отдать индусам на аутсорс" (с).
4. Скормить выхлоп парсера тому же wget'у.
5. PROFIT.
Dell Studio XPS 16, Ubuntu 14.04 LTS (Home).
HP nx6110, Ubuntu 8.04 LTS => 10.04 LTS (Home).

 

Страница сгенерирована за 0.08 секунд. Запросов: 24.