Um comando muito útil no Linux e que todo SysAdmin, desenvolvedor e usuário Linux usa ou já usou é o wget[link], um comando sensacional pra você fazer download de qualquer arquivo, pacote, aplicação via terminal, exato, sem precisar de interface gráfica.
Eu não venho neste artigo explicar sobre o wget, já existe bastante material na internet, além do mais, o comando é simples.
bueno@svm10:~ $ wget http://aqui_o_site.com/download.iso
Você já estaria fazendo download do arquivo download.iso e uma barra de progresso é exibida logo abaixo.
Mas um caso curioso que venho expor é, imagina que você tenha 2 interfaces de rede ou até mais e todas com acesso a internet e você não quer baixar o pacote ou programa pela principal e sim em outra interface.
No meu caso foi até mais legal, se eu baixasse no modo normal, o link sairia pelas rotas do provedor da primeira interface, passaria por todos switchs, roteadores e afins e no final entraria pelo outro provedor e chegaria no servidor, mas eu sabia que a outra interface me deixaria baixar praticamente local.
Então encontrei a opção –bind-address em Download Options[link].
‘–bind-address=ADDRESS’
When making client TCP/IP connections, bind to ADDRESS on the local machine. ADDRESS may be specified as a hostname or IP address. This option can be useful if your machine is bound to multiple IPs.
Show! Fecho.
Meu cenário atual era:
bueno@svm10:/tmp$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:89:3f:8d brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 00:A0:92:19:12:4c brd ff:ff:ff:ff:ff:ff 4: br0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc state UP mode DEFAULT qlen 1000 bueno@svm10:/tmp$ ifconfig eth1 eth1 Link encap:Ethernet Endereço de HW 08:00:27:89:3f:8d inet end.: 10.22.11.29 Bcast:10.22.11.254 Masc:255.255.255.0 endereço inet6: :00A0:ff92:fe19:3f12:2d4c/64 Escopo:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 pacotes RX:41636 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:24550 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:59769407 (59.7 MB) TX bytes:2134280 (2.1 MB)
Beleza, tenho duas interfaces de rede e uma bridge, e a que eu queria é a eth1.
bueno@svm10:/tmp$ wget http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso --progress=dot --bind-address=10.22.11.49 --2015-04-16 22:39:47-- http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso Resolvendo releases.ubuntu.com (releases.ubuntu.com)... 91.189.92.151, 2001:7b8:3:37:213:136:29:219 Conectando-se a releases.ubuntu.com (releases.ubuntu.com)|91.189.92.151|:80... falhou: Não foi possÃvel acessar o endereço requisitado. Conectando-se a releases.ubuntu.com (releases.ubuntu.com)|2001:7b8:3:37:213:136:29:219|:80... falhou: Argumento inválido. bueno@svm10:/tmp$ wget http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso --progress=dot --bind-address=10.22.11.29 --2015-04-16 22:39:53-- http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso Resolvendo releases.ubuntu.com (releases.ubuntu.com)... 91.189.92.151, 2001:7b8:3:37:213:136:29:219 Conectando-se a releases.ubuntu.com (releases.ubuntu.com)|91.189.92.151|:80... conectado. A requisição HTTP foi enviada, aguardando resposta... 200 OK Tamanho: 1044381696 (996M) [application/x-iso9660-image] Salvando em: âubuntu-14.04.2-desktop-amd64.iso.4â 50K .......... .......... .......... .......... .......... 0% 99,2K 2h57m 100K .......... .......... .......... .......... .......... 0% 181K 2h29m 150K .......... .......... .......... .......... .......... 0% 92,6K 2h38m 200K .......... .......... .......... .......... .......... 0% 6,10M 2h6m 250K .......... .......... .......... .......... .......... 0% 96,1K 2h15m 300K .......... .......... .......... .......... .......... 0% 132K 2h14m 350K .......... .......... .......... .......... .......... 0% 116K 2h15m 400K .......... .......... .......... .......... .......... 0% 184K 2h11m 450K .......... .......... .......... .......... .......... 0% 142K 2h9m 500K .......... .......... .......... .......... .......... 0% 187K 2h6m 550K .......... .......... .......... .......... .......... 0% 195K 2h3m 600K .......... .......... .......... .......... .......... 0% 174K 2h1m 650K .......... .......... .......... .......... .......... 0% 184K 1h59m 700K .......... .......... .......... .......... .......... 0% 184K 1h57m 750K .......... .......... .......... .......... .......... 0% 156K 1h56m 800K .......... .......... .......... .......... .......... 0% 184K 1h55m ^C
Foi proposital na primeira linha eu passar o IP errado, pra ver o que aconteceria, e em seguida o IP correto da interface, e funcionou perfeitamente.
Uma conexão ruim, um modem 3G e outro link junto você tem mais uma opção para download com wget, por outras rotas/provedores.
Só que neste caso usei um link para download de uma iso do Ubuntu para exemplo.
Se notar o progresso do download mudou, o padrão é barras, eu mudei o progresso para dot em –progress=dot :)
Espero que tenham gostado.
Até a próxima!
Referências
http://www.gnu.org/software/wget/manual/wget.html
http://www.gnu.org/software/wget/manual/wget.html#Download-Options
Linux – Escolhendo interface para download no wget by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.