Op je desktop open je waarschijnlijk niet meteen een terminal om iets te downloaden. Maar op een Raspberry Pi of een ander headless systeem heb je weinig keuze. Met de volgende tips kun je er meteen mee aan de slag!

 

1. wget

Er bestaan heel wat commandline download clients, maar slechts één ervan vind je op élk Linux-systeem: wget. Daarom behandelen we die eerst. Met wget download je bestanden via HTTP of FTP, bijvoorbeeld:

 

wget https://linuxmag.nl

 

Wget is erg robuust. Treedt er een netwerkprobleem op tijdens het downloaden, dan zal wget het automatisch opnieuw proberen, totdat het bestand volledig gedownload is.

 

2. Downloads pauzeren

Ben je net een ISO van 5GB aan het downloaden en moet je dringend weg met je laptop? Met Ctrl-C breek je een download af zónder de reeds gedownloade data te verwijderen. Download je nadien hetzelfde bestand, dan begint wget standaard van voor af aan. Wil je de vorige download verderzetten, gebruik dan de optie –continue of -c. Uiteraard werkt dat alleen als het bestand op de server in de tussentijd niet is veranderd!

 

3. Authenticatie

Soms moet je jezelf authenticeren alvorens je mag downloaden van een server. Vooral bij FTP-servers is dat vaak het geval, maar ook bij HTTP-servers is het niet ongebruikelijk. Je merkt dit in wgets output als je de meldingen “401 Authorization Required” en “Authorization failed” te zien krijgt. Voeg dan de opties –user=<user> en –password=<password> toe om de download alsnog te starten.

Verwar dit echter niet met authenticatie bij een proxyserver. In bepaalde omgevingen (zoals bedrijfsnetwerken) heb je geen rechtstreekse toegang tot internet. Je moet dan een proxyserver instellen en (optioneel) jezelf authenticeren bij die proxyserver. Daarvoor biedt wget de opties –proxy-user en –proxy-password. Wget bevat geen optie om aan te geven welke proxyserver je wilt gebruiken, maar ondersteunt de standaard proxy-variabelen. Wil je bijvoorbeeld een HTTP-proxy gebruiken, exporteer dan de volgende variabele, voordat je wget start (uiteraard vul je hier het correcte IP-adres en poortnummer in!):

 

export http_proxy=192.168.1.10:8118

 

Vergeet niet om ook de variabelen https_proxy en ftp_proxy te exporteren als je via HTTPS of FTP wilt downloaden!

 

4. Opties bewaren

Na verloop van tijd merk je waarschijnlijk dat je bepaalde opties bij wget steevast gebruikt. Om die niet elke keer opnieuw te hoeven invoeren, kun je ze in één van wgets configuratiebestanden plaatsen. Standaardopties voor alle gebruikers plaats je in /etc/wgetrc en opties voor één specifieke gebruiker in ~/.wgetrc. In onderstaande listing zie je een voorbeeld om afgebroken downloads te hervatten en te downloaden via een proxyserver. Voor dat laatste voegen we de http_proxy-variabele toe in ~/.profile, dat ingelezen wordt bij het opstarten van je shell.

 

$ cat ~/.wgetrc

continue = on

proxy-user = filip

proxy-password = P@ssw0rd

$ tail -1 ~/.profile

export http_proxy=192.168.1.10:8118

 

5. aria2 en curl

Voor de meeste downloads is wget een prima tool, maar toch ontbreken er enkele features voor de echte power users. Loop je tegen één van wgets beperkingen aan, installeer dan aria2c (via het aria2-pakket) of curl. Aria2c is vooral bedoeld om sneller te downloaden (zie tip 6) en ondersteunt ook BitTorrent. Voor een volledig overzicht van aria2c’s mogelijkheden verwijzen we je naar de man-page. Curl daarentegen is meer een general purpose download client met heel wat meer opties dan wget.

 

6. Sneller downloaden

Heb je een snelle internetverbinding en ligt de bottleneck tijdens het downloaden bij de remote server? aria2c bevat verschillende trucjes om tóch de maximale downloadsnelheid te behalen! Zo opent aria2c standaard vijf verbindingen naar de remote server, waarbij elke verbinding een ander deel van het bestand downloadt. Maar het kan nog gekker: geef je meerdere URL’s op, die verwijzen naar hetzelfde bestand op verschillende servers, dan splitst aria2c de download over die servers. Dat mag zelfs via verschillende protocols gebeuren, bijvoorbeeld twee HTTP-servers en één FTP-server. Op die manier weet aria2c steeds de maximale beschikbare bandbreedte te gebruiken!