Ich habe verraten wo das JSON-File des rpi-install liegt. Wenn wir das schon wissen, dann wollen wir die Downloads auch gleich anstoßen. Dazu legen wir ein Verzeichnisan z.B. /tmp/downi das mach man in der shell mit
und jetzt wechseln wir in das Verzwichnis mit
.
so jetzt kommt der Befehl aller Befehle
Code: Alles auswählen
rm os_list_imagingutility_v4.json ;wget https://downloads.raspberrypi.org/os_list_imagingutility_v4.json; cat os_list_imagingutility_v4.json | grep "url\":" | cut -f4-4 -d"\"" | xargs wget
Ja diese Zeile ist etwas länger; ich will versuchen sie zu erklären.
Wenn wir uns jeetzt den Inhalt des JSON-Files anschauen dann finden wir solche Einträge
{
"name": "Raspberry Pi OS Full (64-bit)",
"description": "A port of Debian Bookworm with desktop environment and recommended applications",
"icon": "
https://downloads.raspberrypi.com/raspi ... 2-bit).png",
"url": "
https://downloads.raspberrypi.com/raspi ... 024-03-15/
2024-03-15-raspios-bookworm-arm64-full.img.xz",
"extract_size": 14747172864,
"extract_sha256": "d6a6b22c44450aa1b2fc63b6c1231c321e666c6ec881c82464882929d3ecff34",
"image_download_size": 2939352716,
"release_date": "2024-03-15",
"init_format": "systemd",
"devices": [
"pi5-64bit",
"pi4-64bit",
"pi3-64bit"
]
},
Für uns von Interesse ist der url-Tag und der Wert dahinter :
Dazu verwenden wir den Befehl "grep"
und selektieren alle Zeilen für die ein Download existiert. Das Ergebnis sieht dann so aus
"url": "
https://www.raspberrypi.com/software/",
"url": "
https://downloads.raspberrypi.com/raspi ... m64.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... mhf.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... mhf.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... ite.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... ull.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... ite.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... ull.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... ite.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... ull.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... m64.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... ite.img.xz",
"url": "
https://downloads.raspberrypi.com/raspi ... ull.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/nobl ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/nobl ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/mant ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/mant ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/mant ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/jamm ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/jamm ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/jamm ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/foca ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/releases/foca ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/ubuntu-core/2 ... spi.img.xz",
"url": "
http://cdimage.ubuntu.com/ubuntu-core/2 ... spi.img.xz",
Im nächsten Schritt erweitern wir den Befehl und wollen nur mehr den http -begriff. Dazu gibt es den wundervollen Befehl cut. cut spaltet Begriff in Felder und schneidet etwas heraus. Achja das Zeichen | (pipe) übergibt das Ergebnis eines Befehl als Eingabe an einen anderen. Also der obrigen Befehl erweitern wir in die Form
Code: Alles auswählen
grep "url\":" os_list_imagingutility_v4.json | cut -f4-4 -d"\""
übergeben den Output an dem Befehl cut. Der schneidet das 4 Feld (-d4-4) mit dem Trennzeichen " heraus.
Das Ergebnis ist jetzt eine Liste mit den http-Adressen .
Als letzten Teil des Befehl über geben wir diese Liste noch an wget. Dazu machen wir aus der liste einen Übergabeparameter mittels xargs.
Code: Alles auswählen
grep "url\":" os_list_imagingutility_v4.json | cut -f4-4 -d"\"" | xargs wget
und damit wäre unser Befehl fertig. Abends gestartet und morgens viele Raspi-Files am Rechner.