Die Verwendung von aria2 anstelle von curl unterbricht die Textsubstitution

465
hensti

Ich versuche, eine Website zu spiegeln, archive.orgaber die Verwendung curlist sehr langsam, daher wollte ich es lieber versuchen aria2.

Ich erstelle mit diesem Befehl eine Link-Map der Site

wget -c -m --restrict-file-names=nocontrol https://www.example.com/ 

und dann diesen Befehl mit curl ausführen

find . -type f -exec curl -v "https://web.archive.org/save/https://{}" ';' 

(Eigentlich habe ich diesen Befehl verwendet, um ein gutes Protokoll über meine Aktivitäten zu erhalten

find . -type f -exec curl -v "https://web.archive.org/save/https://{}" ';' 2> >(grep 'Rebuilt URL' >>/tmp/error ) >/tmp/stdout - hier als Referenz beigefügt)

Dies funktionierte gut, der find-Befehl erzeugte eine Ausgabe wie

./www.example.com/index 

und curl ignorierte die Führung magisch ./

Nun, Aria2 war nicht so schlau. Dieser Befehl

find . -type f -exec aria2c -x 16 -s 1 "https://web.archive.org/save/https://{}" ';' 

zu diesem Fehler führen:

07/24 23:40:45 [ERROR] CUID#7 - Download aborted. URI=https://web.archive.org/save/https://./www.example.com/index 

(Beachten Sie das Extra ./in der Mitte der URL).

Ich fand dann diese Frage, die mir half, die Ausgabe von find zu ändern

find . -type f -printf '%P\n' 

kehrt zurück

www.example.com/index 

(keine Führung ./)

Wenn Sie dies jedoch an aria2 übergeben, enthält die verkettete URL immer noch ./in der Mitte!?!?

find . -type f -printf '%P\n' -exec aria2c -x 16 -s 1 "https://web.archive.org/save/https://{}" ';' 

gibt diese Fehlermeldung aus

www.example.com/index  07/24 23:52:34 [NOTICE] Downloading 1 item(s) [#d44753 0B/0B CN:1 DL:0B]  07/24 23:52:35 [ERROR] CUID#7 - Download aborted. URI=https://web.archive.org/save/https://./www.example.com/index Exception: [AbstractCommand.cc:351] errorCode=29 URI=https://web.archive.org/save/https://./www.example.com/index -> [HttpSkipResponseCommand.cc:232] errorCode=29 The response status is not successful. status=502  07/24 23:52:35 [NOTICE] Download GID#d44753fe24ebf448 not complete:   Download Results: gid |stat|avg speed |path/URI ======+====+===========+======================================================= d44753|ERR | 0B/s|https://web.archive.org/save/https://./www.example.com/index 

Wie entferne ich ./aria2 so, dass korrekte und korrekte URLs verwendet werden?

Bonusfragen:

  1. Es wäre schön, wenn ich die Seiten nach der Bearbeitung ihrer URL (erneut) verschieben könnte. Verschieben Sie den Index von ./www.example.com/indexnach ./processed/www.example.com/index. Wie mache ich das? Etwas in der execder findBefehl? Oder erfordert das ein vollwertiges Skript?

  2. Was sind die optimalen Einstellungen für aria2 für diesen Zweck?

0

0 Antworten auf die Frage