Skip to main content
Tipp für die Linux Bash: jq is a lightweight and flexible command-line JSON processor
Tipp für die Linux Bash: jq is a lightweight and flexible command-line JSON processor
jq ist ein flexibles leichtgwwichtges Tool für Json, ähnlich wie sed. Damit kann man direkt Json Quellen anzapfen und diese dann als Monitoring nutzen.

Neue Docker Image abfragen

Für meinen konkreten Fall wollte ich wissen wann eine neue Gitea, oder Redmine-Version für Docker verfügbar wird. In diesem Beispiel wird abgefragt anzahl Images bei hub.docker.com vefügbar sind: ./docker-apps.sh gitea

#!/bin/bash

app=$1
json=""


if [ "$1" = "gitea" ]; then
json=$(curl -s "https://hub.docker.com/v2/repositories/gitea/gitea/tags/?page_size=25&page=1")
fi

if [ "$1" = "redmine" ]; then
json=$(curl -s "https://hub.docker.com/v2/repositories/sameersbn/redmine/tags/?page_size=5&page=1")
fi

echo $json | jq '.count'

Der Output ist im Fall von Gitea 1.7.3 schlichtweg nur "62". Somit muss ich nur noch prüfen ob sich der Zähler geändert hat. Im zweiten Fall wollte ich die 4 letzten Versionen, bez. Tags des Docker Images haben.

#!/bin/bash

json=$(curl -s "https://hub.docker.com/v2/repositories/gitea/gitea/tags/?page_size=4&page=1")

SUB_0=( $(echo $json | jq '.results' | jq '.[].name') )
SUB_1=( $(echo $json | jq '.results' | jq '.[].last_updated') )

c=0
for i in "${SUB_0[@]}"
do

xlast=${SUB_1[$c]}
len=${#i}


if [ "$len" -gt 5 ];then
        echo -e "$c \t $i \t $xlast"
else
        echo -e "$c \t $i \t\t $xlast"
fi

c=$(($c+1))
done

Ergbt als Output:

0        "latest"        "2019-03-11T18:34:05.288288Z"
1        "1.7"           "2019-03-05T18:57:54.614169Z"
2        "1.7.3"         "2019-02-27T20:54:51.165743Z"
3        "1"             "2019-02-27T20:54:46.033051Z

Hier könnte man wiederum Ansetzen und das Datum triggern.

Fazit

Mit jq hat man eine geniale Möglichkeiten Json Daten direkt zu verarbeiten wie ich es z.b. für xPath für XML kenne und spart sich wesentliche Programmierarbeit. Link: https://stedolan.github.io/jq/tutorial/

Nichts gefunden

Es wurde zur Story Tipp für die Linux Bash: jq is a lightweight and flexible command-line JSON processor kein Kommentar gefunden

Information

Werbung oder Ähnliches sind nicht erlaubt, daher wird jeder Beitrag geprüft und freigegeben.
Advertising, etc. are not allowed, so any contribution is reviewed and approved.
Facebook-Webadress are not allowed, Facebook als Webadresse ist nicht erlaubt


* Die E-Mail wird nicht veröffentlicht / The email will not be published
** Bitte Zahl eintragen / Please enter the number
Ihr Kommentar
?
?
captcha Image?
?
 
×

...auch noch interessant

Tippsammlung

Kleine Tippsammlung für mich und dijenige die sich auf meine Webseite verirrt haben.

Archiv

JahrArchiv
Tag(s):