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


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

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

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

Оффлайн larystyle

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

ТС не появлялся на Форуме более полугода по состоянию на 09/09/2019 (последняя явка: 03/02/2019). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 09 Сентября 2019, 16:59:13 от zg_nico »

Оффлайн EvangelionDeath

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

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

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

Получаем что-то типа такого
Код: (bash) [Выделить]
wget http://site.com/exefile.exe -O /tmp/exefile.exe
wget http://site.com/exefile.exe --directory-prefix=/tmp/
И да, все можно сделать, в помощь unzip/gunzip (все что может распаковать архив), awk, sed, cat, grep, mkdir, cp, mv etc для того, что бы считать текстовый файл (надеюсь там не docx или еще что-то, тогда надо еще несколько "програм"), распарсить и положить все куда следует
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн larystyle

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

Оффлайн Azure

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

Оффлайн EvangelionDeath

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

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

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

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

А еще лучше, приложили бы эти файлы к сообщению
« Последнее редактирование: 23 Мая 2016, 14:19:35 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

kononvaler

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



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

Оффлайн larystyle

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

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Да файлы *.exe - на линукс мы не можем скачать файл *.exe, и скопировать его в нужный каталог?
Можем. Но вопрос остается открытым: где вся уточняющая информация? В общих чертах алгоритм такой:
- качаем архив (wget)
- распаковываем архив (unzip)
- смотрим нужные нам данные в текстовом файле (cat, grep, awk)
- переносим архив куда положено (mkditr, mv)
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

kononvaler

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

Оффлайн larystyle

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

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

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

Оффлайн scsiman

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

 

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