Die *nix-Befehle curl
und wget
sind nützlich, um auf URLs zuzugreifen, ohne auf einen Browser zurückzugreifen. Mit beiden Befehlen können Sie mit curl
Daten von einem Netzwerkserver übertragen der robustere der beiden zu sein. Sie können beide verwenden, um Downloads von verschiedenen Servern zu automatisieren.
Der Curl-Befehl
Wie bereits erwähnt, die curl
Mit dem Befehl können Sie Daten von einem Netzwerkserver übertragen, aber auch Daten auf einen Netzwerkserver verschieben. Neben HTTP können Sie andere Protokolle verwenden, darunter HTTPS, FTP, POP3, SMTP und Telnet. Administratoren verlassen sich häufig auf curl
um mit APIs unter Verwendung der Methoden DELETE, GET, POST und PUT zu interagieren, wie hier erklärt.
Die Syntax für curl
ist auf den ersten Blick ziemlich geradlinig. Hier ist ein Beispiel:
$ curl http://www.example.com/help.txt
curl-Optionen
Sie können Ihrer Befehlssyntax verschiedene Optionen hinzufügen:
curl [options] [url]
Es sind die Optionen, die curl
machen also robust. Das Folgende sind einige der verfügbaren Optionen, die mit curl
verwendet werden und Anwendungsbeispiele.
-a, --append
Beim Hochladen einer Datei können Sie mit dieser Option an die Zieldatei anhängen, anstatt sie zu überschreiben (FTP, SFTP).
$ curl --append file.txt ftp://ftp.example.com/file.txt
--connect-timeout
Der --connect-timeout
Die Option legt die maximale Zeit in Sekunden fest, die curl
dauert verwenden kann, um seine Verbindung zum Remote-Server herzustellen. Diese Option ist praktisch, um zu verhindern, dass die Verbindung zu schnell beendet wird, und um die Zeit zu minimieren, die der Befehl für den Verbindungsversuch benötigt.
$ curl --connect-timeout 600 http://www.example.com/
--dns-servers
Mit dieser Option können Sie DNS-Server curl
auflisten sollte anstelle der Systemvorgabe verwendet werden. Diese Liste kann bei der Behebung von DNS-Problemen nützlich sein oder wenn Sie eine Adresse für einen bestimmten Nameserver auflösen müssen.
$ curl --dns-servers 8.8.8.8 http://www.example.com/
--http3
Sie können curl speziell anweisen, das http3-Protokoll zu verwenden, um eine Verbindung zu dem Host und Port herzustellen, die mit einer https-URL bereitgestellt werden. --http2 und --http1.1 funktionieren auf die gleiche Weise und können zur Überprüfung eines Webservers verwendet werden.
$ curl --http3 http://www.example.com:8080/
--Ausgabe
Wenn Sie eine Datei von einem entfernten Server über eine URL abrufen müssen, --output
ist eine einfache Möglichkeit, die Datei lokal zu speichern.
$ curl http://www.example.com/help.txt --output file.txt
--Fortschrittsbalken
Diese Option zeigt in Kombination mit --output
den Fortschritt der Dateiübertragung an Option.
$ curl --progress-bar http://www.example.com/help.txt --output file.txt
--sslv2
Wie bei HTTP können Sie curl speziell anweisen, eine bestimmte SSL-Option für den Befehl zu verwenden, zu dem eine Verbindung hergestellt werden soll, und in diesem Fall geben wir Version 2 an. --ssl gibt an, dass SSL verwendet werden muss und --sslv3 gibt SSL-Version 3 an. Hinweis:sslv2 und sslv3 werden vom Betreuer als veraltet angesehen, obwohl sie noch verfügbar sind.
$ curl --sslv2 https://www.example.com/
--verbose
Der --verbose
Option mit curl
ist nützlich zum Debuggen und Anzeigen, was während des Aufrufs der URL vor sich geht.
$ curl --verbose http://www.example.com
Der wget-Befehl
Im Gegensatz zu curl
, das wget
Der Befehl dient ausschließlich dem Abrufen von Informationen von einem entfernten Server. Standardmäßig werden die erhaltenen Informationen unter demselben Namen wie in der angegebenen URL gespeichert.
Hier ist ein Beispiel für das einfache wget
Syntax:
$ wget http://www.example.com/help.txt
wget-Optionen
Wie curl
, können Sie Ihrem wget
verschiedene Optionen zuweisen Befehlssyntax:
wget [option] [url]
--dns-servers=ADRESSEN
Sie können einen oder mehrere spezifische DNS-Server angeben, die bei der Verwendung von wget
verwendet werden sollen um auf einen entfernten Server zuzugreifen. Die Syntax unterscheidet sich jedoch, wenn Option und Nameserver-Adressen mit einem =.
$ wget --dns-servers=8.8.8.8 http://www.example.com
-O
Um eine Datei unter einem neuen Namen zu speichern, wenn wget
verwendet wird verwenden Sie das --output-document
Option, oder einfacher -O
.
$ wget http://www.example.com/help.txt -O file.txt
--progress=type
Mit wget
, können Sie einen Typ (Punkt oder Balken) angeben, um das ASCII-Visual des Fortschrittsbalkens zu bestimmen. Wenn kein Typ angegeben ist, wird standardmäßig ein Punkt verwendet.
$ wget --progress=dot http://www.example.com
Schluss machen
Die curl
und wget
Befehle können sehr nützlich sein, wenn sie zu Skripten hinzugefügt werden, um RPM-Pakete oder andere Dateien automatisch herunterzuladen. Dieser Beitrag berührt nur einige der häufigsten Funktionen dieser Befehle. Eine vollständige Liste der verfügbaren Optionen für curl
finden Sie in den zugehörigen Manpages und wget
.
[ Möchten Sie Ihre Fähigkeiten als Systemadministrator testen? Machen Sie noch heute einen Kompetenztest. ]