Monitor repozytoriów Debiana - użycie w skryptach
Oprócz zwykłego monitora na naszej stronie, udostępniamy również jego formę tekstową. Ma ona tę zaletę, iż w łatwy sposób można ją przerobić, aby wyświetlić aktualny stan repozytorium w dowolnej formie — w monitorze systemu (np. Conky), we własnym programie lub skrypcie, w konsoli itd.
Adresy plików
Raporty w formie tekstowej dla odpowiedniej gałęzi Debiana można pobrać z:
- dug.net.pl/monitor/monitor_stable.txt (lub w formie skompresowanej)
- dug.net.pl/monitor/monitor_testing.txt (lub w formie skompresowanej)
- dug.net.pl/monitor/monitor_unstable.txt (lub w formie skompresowanej)
Format plików
Pliki zaczynają się od krótkiego komentarza (linie zaczynające się od #) zawierającego informacje na temat monitora. Poniżej znajdują się wartości dla poszczególnych architektur, oddzielone średnikiem. Kolejno są to:
- architektura
- procentowa liczba pakietów z niespełnionymi zależnościami (bez znaku procenta)
- liczba pakietów z niespełnionymi zależnościami
- liczba wszystkich pakietów
- pogodowy opis stanu repozytorium po polsku
- pogodowy opis stanu repozytorium po angielsku
Przykładowy plik:
# Format i sposób przetwarzania opisano na
# http://dug.net.pl/monitor/skrypty/
i386;0,00;0;28232;Słonecznie;Clear
amd64;0,02;5;28130;Słonecznie;Clear
armel;0,25;70;27559;Słonecznie;Clear
kfreebsd-i386;1,62;419;25873;Lekkie zachmurzenie;Few clouds
kfreebsd-amd64;1,64;424;25881;Lekkie zachmurzenie;Few clouds
Przetwarzanie plików
Najprościej zapisany plik można przetworzyć przy pomocy programu awk
:
$ awk -F ';' '$1=="ARCHITEKTURA" {print "FORMAT"}' monitor_stable.txt
gdzie:
- ARCHITEKTURA to interesująca nas architektura Debiana
- FORMAT to format, w jakim chcemy wyświetlić dane — można przy tym stosować zmienne $1, $2 itd., które odpowiadają za kolejne pola (uwaga: zmienne muszą być umieszczone poza cudzysłowem), oraz znaki specjalne typu
\n
,\t
Przykładowe użycie:
$ awk -F ';' '$1=="i386" {print "W architekurze " $1 " znajduje się " $2 "% pakietów z niespełnionymi zależnościami."}' monitor_stable.txt
W architekurze i386 znajduje się 0,00% pakietów z niespełnionymi zależnościami.
Można również przerobić dane w locie, bez zapisywania pliku:
$ wget -q -O - http://dug.net.pl/monitor/monitor_stable.txt | awk ...
lub, korzystając z eval
, wczytać dane jako zmienne:
$ eval `awk -F ';' '$1=="i386" {print "ARCHITEKTURA=\"" $1 "\" PROCENTY=\"" $2 "%\""}' monitor_stable.txt`
$ echo $ARCHITEKTURA
i386
$ echo $PROCENTY
0,00%