INT 21h

Домашняя страница самого страшного прерывания

Как быстренько состряпать автоматическую зеркалилку ПО

№ 8262 В разделе "Администрирование" от January 20th, 2017,

Понадобится python3, urllib3, bash, aria2c (потому, что может в несколько потоков качать) и curl.

Сначала нужно научиться получать список файлов для скачивания. Это не сложно. Я просто получил файл по урлу, выделил из него все ссылки и взял только те, что ссылаются в нужное место. Ничего сложного.

from html.parser import HTMLParser
import urllib3
links = []
http = urllib3.PoolManager()
pagedata = http.request('GET', 'http://dbeaver.jkiss.org/download/')

class MyHTMLParser(HTMLParser):
    def handle_starttag(self, tag, attrs):
        if tag != 'a':
            return
        attr = dict(attrs)
        links.append(attr)

parser = MyHTMLParser()
parser.feed(str(pagedata.data))

for link in links:
    if ('href' in link):
        if ('/files/dbeaver-ce' in link['href']):
            print('http://dbeaver.jkiss.org'+link['href'])

Скрипт выведет список ссылок на файлы типа

# python3 mm_dbeaver.py 

http://dbeaver.jkiss.org/files/dbeaver-ce-latest-x86-setup.exe

...

Дальше еще проще! Пишем скрипт на bash, который получит страницу с ссылками и сравнит с тем, что было скачано ранее. Если появились изменения, то нужно удалить старые файлы (если требуется), получить список новых файлов и скачать их все. А в конце старый файл страницы заменяем новым.

#!/bin/bash

cd "$(dirname "$0")"

outdir="/mnt/office/distr/DBMS and Tools/DBEAVER"
touch page.last

curl -s http://dbeaver.jkiss.org/download/ > page.current

md5last=$(md5sum page.last|awk '{print $1}')
md5current=$(md5sum page.current|awk '{print $1}')

echo $md5last $md5current

if [ "$md5current" == "$md5last" ];
then
    echo "Equal"
else
    echo "Not equal. Update needed."
    echo "Cleaning $outdir/*"
    rm -rf "$outdir"
    for i in $(python3 ./mm_dbeaver.py) ; do
        aria2c -d "$outdir" "$i"
    done
    cp page.current page.last
fi

Собственно все. Кладете симлинк в /etc/cron.daily и забываете.

Нет комментариев »

Оставьте ваш комментарий »

Форма отправки комментария

CAPTCHA
*

Разрешенные HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

RSS RSS Feed только для этого поста |


Комментарии
  • Игорь: Все настроил, еще раз просмотрел видео и методом научного тыка все настроил и сохранил, все работает и обе...
  • 21h: Здравствуйте, Игорь! Я не знаю :) Думаю аналогично согласно инструкции к вашей радиостанции.
  • Игорь: Добрый день, просмотрел Ваше видео все доступно и ясно для 8 ми канальных радеек, но мне нада настроить 69...
  • Гоги: Есть инструкция к Моторолкам – она подходит к серии Motorola TLKR T4… Т8. В конце сетка частот и...
  • 21h: торчок давно уже не обновлял, как только закрыл сайт где он работал. да, это морда для opentracker. без...
  • Buter: Какова дальнейшая жизнь торчка? Он кстати веб-интерфейсом для OpenTracker выступает? Без OpenTracker работать...
  • 21h: понятия не имею. гуглите инструкцию к вашей радейке и сверяйтесь с ней.
  • Денис: хочу их подружить с uv5r
  • Денис: t-388 walkie talkie на эти шпаргалочек нет,или как приминить ваши к их настройке?
  • John: Стекла для электроник – техночас.ру