10 wget parancspélda a wget teszt hibaelhárításához

A sysadmin egyik gyakran használt segédprogramja a wget. Nagyon hasznos lehet a webes hibaelhárítás során.

Mi az a wget parancs?

A wget parancs egy népszerű Unix/Linux parancssori segédprogram a tartalom webről való lekérésére. Ingyenesen használható, és nem interaktív módot biztosít a fájlok internetről történő letöltésére. A wget parancs azonnal támogatja a HTTPS, HTTP és FTP protokollokat. Ezenkívül HTTP-proxykat is használhat vele.

Hogyan segít a wget a hibaelhárításban?

Számos módja van.

Rendszergazdaként az idő nagy részében egy terminálon dolgozik, és a webalkalmazásokkal kapcsolatos problémák elhárításakor előfordulhat, hogy nem a teljes oldalt szeretné ellenőrizni, hanem csak a kapcsolatot. Vagy ellenőrizni szeretné az intranetes webhelyeket. Vagy le szeretne tölteni egy bizonyos oldalt a tartalom ellenőrzéséhez.

A wget nem interaktív, ami azt jelenti, hogy akkor is futtathatja a háttérben, ha ki van jelentkezve. Számos olyan eset fordulhat elő, amikor elengedhetetlen, hogy leváljon a rendszerről, még akkor is, ha fájllekérést végez az internetről. A háttérben a wget fut, és befejezi a hozzárendelt feladatát.

Használható arra is, hogy a teljes webhelyet a helyi gépeken töltse le. Követheti az XHTML-ben és a HTML-oldalakban található hivatkozásokat a helyi verzió létrehozásához. Ehhez rekurzívan le kell töltenie az oldalt. Ez nagyon hasznos, mivel fontos oldalakat vagy webhelyeket tölthet le offline megtekintéshez.

Lássuk őket működés közben. A wget szintaxisa a következő.

wget [option] [URL]

Weboldal letöltése

Próbáljunk meg letölteni egy oldalt. Pl.: github.com

wget github.com

Ha a kapcsolat megfelelő, akkor letölti a kezdőlapot, és az alábbiak szerint jeleníti meg a kimenetet.

[email protected]:~# wget github.com
URL transformed to HTTPS due to an HSTS policy
--2020-02-23 10:45:52--  https://github.com/
Resolving github.com (github.com)... 140.82.118.3
Connecting to github.com (github.com)|140.82.118.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

index.html                                       [ <=>                                                                                        ] 131.96K  --.-KB/s    in 0.04s   

2020-02-23 10:45:52 (2.89 MB/s) - ‘index.html’ saved [135126]

[email protected]:~#

Több fájl letöltése

Hasznos, ha egyszerre több fájlt kell letöltenie. Ez ötletet adhat a fájlok egyes szkripteken keresztüli letöltésének automatizálásáról.

  Fájlok küldése Discordon

Próbáljuk meg letölteni a Python 3.8.1 és 3.5.1 fájlokat.

wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz

Tehát, ahogy sejtheti, a szintaxis a következő.

wget URL1 URL2 URL3

Csak biztosítania kell, hogy helyet hagyjon az URL-ek között.

Korlátozza a letöltési sebességet

Hasznos lehet, ha ellenőrizni szeretné, hogy mennyi időbe telik a fájl letöltése különböző sávszélességeken.

A –limit-rate opcióval korlátozhatja a letöltési sebességet.

Itt van a Nodejs fájl letöltésének kimenete.

[email protected]:~# wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
--2020-02-23 10:59:58--  https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
Resolving nodejs.org (nodejs.org)... 104.20.23.46, 104.20.22.46, 2606:4700:10::6814:162e, ...
Connecting to nodejs.org (nodejs.org)|104.20.23.46|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14591852 (14M) [application/x-xz]
Saving to: ‘node-v12.16.1-linux-x64.tar.xz’

node-v12.16.1-linux-x64.tar.xz               100%[===========================================================================================>]  13.92M  --.-KB/s    in 0.05s   

2020-02-23 10:59:58 (272 MB/s) - ‘node-v12.16.1-linux-x64.tar.xz’ saved [14591852/14591852]

0,05 másodpercig tartott a 13,92 MB méretű fájlok letöltése. Most próbáljuk meg 500K-ra korlátozni a sebességet.

[email protected]:~# wget --limit-rate=500k https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
--2020-02-23 11:00:18--  https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
Resolving nodejs.org (nodejs.org)... 104.20.23.46, 104.20.22.46, 2606:4700:10::6814:162e, ...
Connecting to nodejs.org (nodejs.org)|104.20.23.46|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14591852 (14M) [application/x-xz]
Saving to: ‘node-v12.16.1-linux-x64.tar.xz.1’

node-v12.16.1-linux-x64.tar.xz.1             100%[===========================================================================================>]  13.92M   501KB/s    in 28s     

2020-02-23 11:00:46 (500 KB/s) - ‘node-v12.16.1-linux-x64.tar.xz.1’ saved [14591852/14591852]

A sávszélesség csökkentése tovább tartott a letöltéshez – 28 másodperc. Képzeld el, a felhasználók a lassú letöltés miatt panaszkodnak, és tudod, hogy alacsony a hálózati sávszélességük. Gyorsan kipróbálhatja a –limit rate-et a probléma szimulálásához.

  Hogyan frissítsünk Krita 5.0-ra Linuxon

Letöltés a háttérben

A nagy fájlok letöltése eltarthat egy ideig, vagy a fenti példa, ahol a sebességkorlátot is be szeretné állítani. Ez várható, de mi van, ha nem akarod a terminálodat bámulni?

Nos, a -b argumentum segítségével elindíthatja a wget-et a háttérben.

[email protected]:~# wget -b https://slack.com
Continuing in background, pid 25430.
Output will be written to ‘wget-log.1’.
[email protected]:~#

Tanúsítványhiba figyelmen kívül hagyása

Ez akkor hasznos, ha olyan intranetes webalkalmazásokat kell ellenőriznie, amelyek nem rendelkeznek a megfelelő tanúsítvánnyal. Alapértelmezés szerint a wget hibát jelez, ha egy tanúsítvány nem érvényes.

[email protected]:~# wget https://expired.badssl.com/
--2020-02-23 11:24:59--  https://expired.badssl.com/
Resolving expired.badssl.com (expired.badssl.com)... 104.154.89.105
Connecting to expired.badssl.com (expired.badssl.com)|104.154.89.105|:443... connected.
ERROR: cannot verify expired.badssl.com's certificate, issued by ‘CN=COMODO RSA Domain Validation Secure Server CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB’:
  Issued certificate has expired.
To connect to expired.badssl.com insecurely, use `--no-check-certificate'.

A fenti példa arra az URL-re vonatkozik, ahol a tanúsítvány lejárt. Amint láthatja, a –no-check-certificate használatát javasolta, amely figyelmen kívül hagy minden tanúsítvány érvényesítését.

[email protected]:~# wget https://untrusted-root.badssl.com/ --no-check-certificate
--2020-02-23 11:33:45--  https://untrusted-root.badssl.com/
Resolving untrusted-root.badssl.com (untrusted-root.badssl.com)... 104.154.89.105
Connecting to untrusted-root.badssl.com (untrusted-root.badssl.com)|104.154.89.105|:443... connected.
WARNING: cannot verify untrusted-root.badssl.com's certificate, issued by ‘CN=BadSSL Untrusted Root Certificate Authority,O=BadSSL,L=San Francisco,ST=California,C=US’:
  Self-signed certificate encountered.
HTTP request sent, awaiting response... 200 OK
Length: 600 [text/html]
Saving to: ‘index.html.6’

index.html.6                                 100%[===========================================================================================>]     600  --.-KB/s    in 0s      

2020-02-23 11:33:45 (122 MB/s) - ‘index.html.6’ saved [600/600]

[email protected]:~#

Klassz, nem?

Tekintse meg egy adott webhely HTTP válaszfejlécét a terminálon.

A -S használatával kinyomtatja a fejlécet, amint azt alább láthatja a Coursera esetében.

[email protected]:~# wget https://www.coursera.org -S
--2020-02-23 11:47:01--  https://www.coursera.org/
Resolving www.coursera.org (www.coursera.org)... 13.224.241.48, 13.224.241.124, 13.224.241.82, ...
Connecting to www.coursera.org (www.coursera.org)|13.224.241.48|:443... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Content-Type: text/html
  Content-Length: 511551
  Connection: keep-alive
  Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0
  Date: Sun, 23 Feb 2020 11:47:01 GMT
  etag: W/"7156d-WcZHnHFl4b4aDOL4ZSrXP0iBX3o"
  Server: envoy
  Set-Cookie: CSRF3-Token=1583322421.s1b4QL6OXSUGHnRI; Max-Age=864000; Expires=Wed, 04 Mar 2020 11:47:02 GMT; Path=/; Domain=.coursera.org
  Set-Cookie: __204u=9205355775-1582458421174; Max-Age=31536000; Expires=Mon, 22 Feb 2021 11:47:02 GMT; Path=/; Domain=.coursera.org
  Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  X-Content-Type-Options: nosniff
  x-coursera-render-mode: html
  x-coursera-render-version: v2
  X-Coursera-Request-Id: NCnPPlYyEeqfcxIHPk5Gqw
  X-Coursera-Trace-Id-Hex: a5ef7028d77ae8f8
  x-envoy-upstream-service-time: 1090
  X-Frame-Options: SAMEORIGIN
  x-powered-by: Express
  X-XSS-Protection: 1; mode=block
  X-Cache: Miss from cloudfront
  Via: 1.1 884d101a3faeefd4fb32a5d2a8a076b7.cloudfront.net (CloudFront)
  X-Amz-Cf-Pop: LHR62-C3
  X-Amz-Cf-Id: vqvX6ZUQgtZAde62t7qjafIAqHXQ8BLAv8UhkPHwyTMpvH617yeIbQ==
Length: 511551 (500K) [text/html]

Manipulálja a User-Agentet

Előfordulhat olyan helyzet, amikor egy webhelyet egyéni felhasználói ügynök segítségével szeretne csatlakoztatni. Vagy egy adott böngésző felhasználói ügynöke. Ez a –user-agent megadásával érhető el. Az alábbi példa a MyCustomUserAgent nevű felhasználói ügynökre vonatkozik.

[email protected]:~# wget https://gf.dev --user-agent="MyCustomUserAgent"

Ha egy alkalmazás még fejlesztés alatt áll, előfordulhat, hogy nincs megfelelő URL-címe a teszteléshez. Vagy tesztelhet egy egyedi HTTP-példányt IP használatával, de az alkalmazás megfelelő működéséhez meg kell adnia a gazdagép fejlécet. Ebben a helyzetben a –fejléc hasznos lenne.

  26 legjobb adatbányászati ​​szoftver

Vegyünk egy példát a http://10.10.10.1 http://10.10.10.1 tesztelésére úgy, hogy a gazdagép fejléce az application.com

wget --header="Host: application.com" http://10.10.10.1

Nem csak host, de bármilyen fejlécet beilleszthet, amit szeretne.

Csatlakozás Proxy használatával

Ha DMZ környezetben dolgozik, előfordulhat, hogy nem fér hozzá internetes oldalakhoz. De a proxy előnyeit is kihasználhatja a csatlakozáshoz.

wget -e use_proxy=yes http_proxy=$PROXYHOST:PORT http://externalsite.com

Ne felejtse el frissíteni a $PROXYHOST:PORT változót a ténylegesekkel.

Csatlakozás egy adott TLS protokoll használatával

Általában az OpenSSL használatát javaslom a TLS protokoll tesztelésére. De használhatod a wget-et is.

wget –secure-protocol=TLSv1_2 https://example.com

A fentiek arra kényszerítik a wget-et, hogy csatlakozzon TLS 1.2-n keresztül.

Következtetés

A szükséges parancs ismerete segíthet a munkában. Remélem, a fentiek ötletet adnak arról, hogy mit tehetsz a wget-tel.