Frage

Ich habe ein Skript, das die GeoIP Positionen verschiedenen ips wird immer, dies täglich ausgeführt wird, und ich werde erwarten, um ~ 50.000 ips zu haben, zu suchen.

Ich habe ein GeoIP-System eingerichtet. - Ich würde nur wget 50.000 Mal pro Bericht ausgeführt werden soll, die beseitigen möge

Was ich dachte, es muss eine Möglichkeit geben, wget eine Verbindung mit der URL öffnen müssen -. Dann den ips passiert, auf diese Weise nicht die Verbindung wieder herzustellen hat

Jede Hilfe wird sehr geschätzt werden.

War es hilfreich?

Lösung

Wenn Sie wget mehrere Adressen auf einmal geben, mit aufeinander folgenden Adressen, die zu dem gleichen HTTP / 1.1 (Connection: keep-alive) unterstützenden Server, wget wird die bereits bestehende Verbindung wieder verwenden.

Wenn es zu viele Adressen sind auf der Kommandozeile zur Liste, können Sie sie in eine Datei schreiben kann, und verwenden Sie die -i / --input-file= Option (und pro UNIX Tradition, -i- / --input-file=- liest die Standardeingabe).

Es gibt jedoch keine Möglichkeit, eine Verbindung zwischen verschiedenen wget Anrufungen zu erhalten.

Andere Tipps

Sie können auch ein Gewinde Ruby-Skript schreiben auf mehrere Eingabe wget Dateien auszuführen, gleichzeitig den Prozess zu beschleunigen. Also, wenn Sie 5-Dateien haben 10.000 Adressen jeweils, können Sie dieses Skript verwenden:

#!/usr/bin/ruby

threads = []

for file in ARGV
  threads << Thread.new(file) do |filename|
    system("wget -i #{filename}")
  end
end

threads.each { |thrd| thrd.join }

Jedes dieser Themen würde eine Verbindung verwenden, um alle Adressen in einer Datei zum Download bereit. Mit dem folgenden Befehl dann bedeutet nur 5 Verbindungen zum Server alle 50.000 Dateien zum Download bereit.

./fetch.rb "list1.txt" "list2.txt" "list3.txt" "list4.txt" "list5.txt"

Sie können auch ein kleines Programm (in Java oder C oder was auch immer) schreiben, das sendet die Liste der Dateien als POST-Anforderung und der Server gibt ein Objekt mit Daten über sie. Sollte auch nicht zu langsam sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top