10 примера команди вгет који ће вам помоћи у решавању проблема – вгет тест

Један од често коришћених услужних програма од стране сисадмина је вгет. Може бити веома згодно током решавања проблема у вези са вебом.

Шта је вгет команда?

вгет команда је популаран услужни програм командне линије за Уник/Линук за преузимање садржаја са веба. Бесплатан је за коришћење и пружа неинтерактиван начин за преузимање датотека са веба. Команда вгет подржава ХТТПС, ХТТП и ФТП протоколе из кутије. Штавише, са њим можете користити и ХТТП проксије.

Како вам вгет помаже у решавању проблема?

Постоји много начина.

Као системски администратор, већину времена ћете радити на терминалу, а када решавате проблеме у вези са веб апликацијом, можда нећете желети да проверавате целу страницу, већ само повезаност. Или, желите да верификујете интранет веб локације. Или, желите да преузмете одређену страницу да бисте верификовали садржај.

вгет није интерактиван, што значи да га можете покренути у позадини чак и када сте одјављени. Може бити много случајева у којима је неопходно да се искључите са система чак и када преузимате датотеке са веба. У позадини, вгет ће се покренути и завршити свој додељени посао.

Такође се може користити за добијање целе веб локације на вашим локалним машинама. Може да прати везе у КСХТМЛ и ХТМЛ страницама да би направио локалну верзију. Да би то урадио, мора рекурзивно да преузме страницу. Ово је веома корисно јер га можете користити за преузимање важних страница или сајтова за гледање ван мреже.

  Аутоматски премести слацк поруке на друге канале помоћу Реацји-а

Хајде да их видимо на делу. Синтакса вгет-а је као у наставку.

wget [option] [URL]

Преузмите веб страницу

Хајде да покушамо да преузмемо страницу. Пример: гитхуб.цом

wget github.com

Ако је повезивање у реду, онда ће преузети почетну страницу и приказати излаз као у наставку.

[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]:~#

Преузмите више датотека

Згодно када морате да преузмете више датотека одједном. Ово вам може дати идеју о аутоматизацији преузимања датотека путем неких скрипти.

Хајде да покушамо да преузмемо датотеке Питхон 3.8.1 и 3.5.1.

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

Дакле, као што можете претпоставити, синтакса је као у наставку.

wget URL1 URL2 URL3

Само треба да обезбедите размак између УРЛ адреса.

Ограничите брзину преузимања

Било би корисно када желите да проверите колико је времена потребно за преузимање датотеке на различитом пропусном опсегу.

Користећи опцију –лимит-рате, можете ограничити брзину преузимања.

Ево резултата преузимања Нодејс датотеке.

[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 секунди за преузимање датотека од 13,92 МБ. Сада, хајде да покушамо да ограничимо брзину на 500К.

[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]

Смањење пропусног опсега је трајало дуже за преузимање – 28 секунди. Замислите, ваши корисници се жале на споро преузимање, а ви знате да је њихов мрежни пропусни опсег низак. Можете брзо покушати –лимит-рате да симулирате проблем.

  8 професионалних алата за писање за сваког блогера и текстописца

Преузмите у позадини

Преузимање великих датотека може потрајати или горе наведени пример где желите да поставите и ограничење брзине. Ово је очекивано, али шта ако не желите да буљите у свој терминал?

Па, можете користити аргумент -б да покренете вгет у позадини.

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

Занемари грешку сертификата

Ово је згодно када треба да проверите интранет веб апликације које немају одговарајући сертификат. Подразумевано, вгет ће избацити грешку када сертификат није важећи.

[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'.

Горњи пример је за УРЛ где је сертификат истекао. Као што видите, предложио је коришћење –но-цхецк-цертифицате који ће игнорисати било какву валидацију сертификата.

[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]:~#

Супер, зар не?

Погледајте заглавље ХТТП одговора дате локације на терминалу.

Коришћењем -С ће се одштампати заглавље, као што можете видети испод за Цоурсера.

[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]

Манипулишите корисничким агентом

Можда постоји ситуација у којој желите да повежете локацију помоћу прилагођеног корисничког агента. Или кориснички агент одређеног претраживача. Ово је изводљиво навођењем –усер-агент. Пример у наставку је за корисничког агента као МиЦустомУсерАгент.

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

Када је апликација још у развоју, можда немате одговарајући УРЛ за тестирање. Или, можда ћете желети да тестирате појединачну ХТТП инстанцу користећи ИП, али морате да наведете заглавље хоста да би апликација исправно радила. У овој ситуацији, –хеадер би био користан.

  8 Црипто Невс сајтова за праћење најновијих ажурирања

Узмимо пример тестирања хттп://10.10.10.1 са заглављем хоста као апплицатион.цом

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

Не само хост, већ можете убацити било које заглавље које желите.

Повежите се помоћу проксија

Ако радите у ДМЗ окружењу, можда нећете имати приступ Интернет локацијама. Али можете искористити предности проксија за повезивање.

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

Не заборавите да ажурирате променљиву $ПРОКСИХОСТ:ПОРТ са стварним.

Повежите се помоћу одређеног ТЛС протокола

Обично бих препоручио коришћење ОпенССЛ-а за тестирање ТЛС протокола. Али, можете користити и вгет.

вгет –сецуре-протоцол=ТЛСв1_2 хттпс://екампле.цом

Горе наведено ће приморати вгет да се повеже преко ТЛС 1.2.

Закључак

Познавање потребне команде може вам помоћи на послу. Надам се да вам горе наведено даје идеју шта можете да урадите са вгет-ом.