Hier mal ein paar befehle zum ab Scannen des download.avm.de/inhaus/
Da es ja bestimmt so einige Leute hier interessieren wird, Das ist eigentlich ganz einfach dafür muss man nur den Bereich denn man gerne haben will ab scannen. Aber wie macht man dieses z.B. mit curl (am besten die neuste Version dafür benutzen)
#! /bin/bash
# Already tested on Ubuntu 22.04 and 24.04
# Check the latest version at https://curl.se/download/
VERSION=8.11.1
MAX_CPUS="$(getconf _NPROCESSORS_ONLN)";
cd ~
sudo apt-get update -y
sudo apt-get install -y nghttp2 libnghttp2-dev libssl-dev build-essential wget
wget https://curl.haxx.se/download/curl-${VERSION}.tar.gz
tar -xzvf curl-${VERSION}.tar.gz
rm -f curl-${VERSION}.tar.gz
cd curl-${VERSION}
./configure --prefix=/usr/local --with-ssl --with-nghttp2
make -j${MAX_CPUS}
sudo make install
sudo ldconfig
cd ~
rm -rf curl-${VERSION}
curl -V
Da man ab Version 8.10.0 dieses hier benutzen kann --rate 5/m.
Damit würde dann der Befehl so aussehen!
curl -Ss -R -C - -O download.avm.de/inhaus/xxxxxxxx/xxxxxxxx/FRITZ.Box_xxxxxxxx-07.90-[114910-115450]-Inhaus.image --rate 5/m -w "%header{date}\n"; find -size -150b -delete
Erklärung der curl-Optionen:
• curl: Das Kommandozeilen-Tool zum Übertragen von Daten mit URLs (hier zum Herunterladen einer Datei).
• -S: Zeigt Fehler an, auch wenn der Silent Mode (-s) aktiviert ist. Normalerweise unterdrückt -s Ausgaben wie Fortschrittsbalken und andere Statusinformationen. -S sorgt jedoch dafür, dass Fehler weiterhin angezeigt werden.
• -s: Aktiviert den Silent Mode. Diese Option unterdrückt alle Ausgaben von curl, außer den eigentlichen Ergebnissen der Anfrage und Fehlern (die mit -S angezeigt werden). Es wird keine Fortschrittsanzeige oder andere Ausgaben erzeugt.
• -R: Beibehaltung des Zeitstempels der Datei. Mit dieser Option wird das Änderungsdatum der heruntergeladenen Datei auf dem lokalen System beibehalten, das mit dem auf dem Server übereinstimmt.
• -C -: Fortsetzung des Downloads. Wenn der Download unterbrochen wurde (z. B. durch eine Netzwerkunterbrechung), setzt curl den Download an der Stelle fort, an der er gestoppt wurde. Der - nach -C sorgt dafür, dass curl automatisch die Fortsetzung basierend auf dem zuletzt bekannten Punkt im Download durchführt.
• -O: Diese Option bewirkt, dass curl die heruntergeladene Datei unter dem gleichen Namen speichert, wie sie auf dem Server heißt. In diesem Fall wird die Datei als FRITZ.Box_xxxxxxxx-07.90-[yyyyyy-yyyyyy]-Inhaus.image gespeichert.
• download.avm.de/inhaus/xxxxxxxx/xxxxxxxx/FRITZ.Box_xxxxxxxx-07.90-[yyyyyy-yyyyyy]-Inhaus.image: Dies ist die URL, von der die Datei heruntergeladen wird. Der xxxxxxxx und yyyyyy Platzhalter muss durch die tatsächlichen Werte ersetzt werden, um auf die entsprechende Datei zuzugreifen. Es handelt sich hierbei um eine spezifische Firmware-Datei für die FRITZ!Box von AVM.
• --rate 5/m: Diese Option begrenzt die Anzahl der Anfragen auf 5 pro Minute. Dies bedeutet, dass curl maximal 5 Anfragen pro Minute machen kann. Dies ist eine Einschränkung der Anfragehäufigkeit, aber nicht der Downloadgeschwindigkeit. Falls mehrere Dateien oder Teile einer Datei angefragt werden, werden die Anfragen langsamer ausgeführt.
• -w "%header{date}\n": Mit dieser Option gibt curl den Wert des Date-Headers der HTTP-Antwort aus, der das Datum enthält, an dem der Server die Anfrage verarbeitet hat. Der %header{date} gibt also das Datum zurück, das im Date-Header der Antwort enthalten ist (dies gibt Aufschluss darüber, wann der Server die Anfrage bearbeitet hat).
2. find -size -150b -delete
Dieser Teil des Befehls sucht nach kleinen Dateien in deinem aktuellen Verzeichnis und löscht sie:
• find: Der find-Befehl wird verwendet, um nach Dateien und Verzeichnissen zu suchen.
• -size -150b: Dieser Parameter sucht nach Dateien, die kleiner als 150 Bytes sind. Die Einheit b steht für Bytes. Der - vor der Zahl bedeutet "kleiner als". Alle Dateien, die weniger als 150 Bytes groß sind, werden ausgewählt.
• -delete: Diese Option sorgt dafür, dass alle Dateien, die den vorherigen Kriterien entsprechen (also kleiner als 150 Bytes), gelöscht werden.
Man kann aber auch wget benutzen was ich bevorzugen würde. Da würde ich am besten die Version 1.21.4 nutzen. Weil damit hatte ich die wenigsten Probleme.
#! /bin/bash
# Already tested on Ubuntu 22.04 and 24.04
# Check the latest version at http://mirror.team-cymru.com/gnu/wget/
VERSION=1.21.4
MAX_CPUS="$(getconf _NPROCESSORS_ONLN)";
cd ~
wget http://mirror.team-cymru.com/gnu/wget/wget-${VERSION}.tar.gz
tar -xzvf wget-${VERSION}.tar.gz
rm -f wget-${VERSION}.tar.gz
cd wget-${VERSION}
./configure --with-ssl=openssl --prefix=/usr --without-nls --without-ntlm --without-opie --without-psl --without-digest --without-https --without-ipv6 --without-iri --without-large-file --disable-cares --disable-gpgme --disable-metalink
make -j${MAX_CPUS}
sudo make install
sudo ldconfig
cd ~
rm -rf wget-${VERSION}
wget -V
Damit würde dann der Befehl so aussehen!
for ((i=yyyyyy; i<yyyyyy; i++)); do wget --no-verbose -m -nv -N -o 1.log -P download.avm.de/inhaus/xxxxxxxx/xxxxxxxx/FRITZ.Box_xxxxxxxx-07.90-${i}-Inhaus.image -w 12; done
Erklärung der wget-Optionen:
1. for ((i=yyyyyy; i<yyyyyy; i++)); do ... done
Dieser Teil des Befehls ist eine Zählerschleife in der Shell. Die Schleife führt den inneren Befehl (in diesem Fall wget) mehrfach aus, wobei der Wert der Schleifenvariablen i in jedem Durchgang erhöht wird.
• i=yyyyyy: Dies ist der Startwert für die Schleifenvariable i. Der Wert yyyyyy muss durch eine Zahl ersetzt werden, die den Startwert der Schleife darstellt.
• i<yyyyyy: Dies ist das Endkriterium der Schleife. Die Schleife läuft so lange, wie i kleiner als yyyyyy ist. Auch hier muss yyyyyy durch einen tatsächlichen Zahlenwert ersetzt werden.
• i++: Dieser Ausdruck erhöht den Wert von i in jedem Schleifendurchgang um 1.
2. wget --no-verbose -m -nv -N -o 1.log -P download.avm.de/inhaus/xxxxxxxx/xxxxxxxx/FRITZ.Box_xxxxxxxx-07.90-${i}-Inhaus.image -w 12
Dies ist der Befehl, der in jedem Schleifendurchlauf ausgeführt wird. Es wird wget verwendet, um eine Datei herunterzuladen. Schauen wir uns die Optionen an:
Optionen von wget:
• --no-verbose: Diese Option sorgt dafür, dass wget die Verbose-Ausgabe (also detaillierte Statusmeldungen) unterdrückt. Dies ist nützlich, wenn du die Ausgabe von wget minimieren möchtest. Sie sorgt dafür, dass nur essentielle Informationen angezeigt werden. Diese Option ist im Wesentlichen eine kürzere Form für den -nv-Schalter.
• -m: Aktiviert den Mirror-Modus. Dies bedeutet, dass wget versucht, das Verzeichnis und die Struktur der heruntergeladenen Dateien so zu spiegeln, wie sie auf dem Server vorhanden sind. Für den einfachen Dateidownload ist dies möglicherweise nicht notwendig, aber es kann verwendet werden, wenn du mehrere Dateien aus einem Verzeichnis herunterladen möchtest.
• -nv: Der nicht-verbose Modus. Diese Option sorgt dafür, dass wget nur eine reduzierte Menge an Ausgaben produziert. Es wird nicht die vollständige Detailansicht des Downloads angezeigt, sondern nur die wichtigsten Meldungen, wie etwa Fehler oder erfolgreiche Downloads.
• -N: Nur neue Dateien herunterladen. Mit dieser Option wird wget nur dann eine Datei herunterladen, wenn die Version auf dem Server neuer ist als die lokale Version. Wenn die Datei bereits lokal existiert und nicht geändert wurde, wird der Download übersprungen. Dies ist nützlich, wenn du sicherstellen möchtest, dass du nur neue oder aktualisierte Dateien herunterlädst.
• -o 1.log: Gibt an, dass die Ausgabe von wget in eine Logdatei geschrieben werden soll. In diesem Fall wird die Ausgabe in die Datei 1.log geschrieben. Dies ist hilfreich, um später eine Übersicht über den Verlauf des Downloads zu haben und bei Bedarf Fehler zu analysieren.
• -P download.avm.de/inhaus/xxxxxxxx/xxxxxxxx/FRITZ.Box_xxxxxxxx-07.90-${i}-Inhaus.image: Dies gibt den Zielpfad an, in den die heruntergeladene Datei gespeichert werden soll. Die Platzhalter ${i} im Dateinamen werden durch den aktuellen Wert der Schleifenvariablen i ersetzt. Zum Beispiel wird beim ersten Durchlauf der Schleife, wenn i=yyyyyy, die Datei unter dem Pfad download.avm.de/inhaus/xxxxxxxx/xxxxxxxx/FRITZ.Box_xxxxxxxx-07.90-yyyyyy-Inhaus.image gespeichert. Wenn i im nächsten Durchlauf yyyyyy + 1 ist, wird die Datei unter dem Namen FRITZ.Box_xxxxxxxx-07.90-yyyyyy+1-Inhaus.image gespeichert.
• -w 12: Diese Option sorgt dafür, dass 12 Sekunden gewartet werden, bevor wget den nächsten Download startet. Diese Wartezeit hilft, den Server nicht zu überlasten und gibt ihm Zeit, die Anfragen zu verarbeiten. Sie dient dazu, die Rate der Anfragen zu verlangsamen, insbesondere wenn du eine große Anzahl von Dateien herunterlädst.