Existe uma maneira de formar conexões de rede usando o shell script?

1

Eu quero formar uma conexão de rede para um site e ler os dados linha por linha e armazená-los em um arquivo de texto no meu sistema usando scripts de shell. Eu fiz isso usando java onde eu posso ler usando um objeto URLConnection para esse recurso específico.
Em shell script, o WGET Spider é a única maneira de fazer isso? Se não existem outras formas de ler o arquivo de texto de um site, analisá-lo e armazená-lo no meu diretório local?

EDITAR

Eu tentei usar o WGET usando wget -o /home/user/Desktop/training.txt https://www.someurl.com . Mas a saída é algo como isto

--2014-04-15 00:39:15--  https://s3.amazonaws.com/hr-testcases/368/assets/trainingdata.txt
Resolving s3.amazonaws.com (s3.amazonaws.com)... 176.32.99.154
Connecting to s3.amazonaws.com (s3.amazonaws.com)|176.32.99.154|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1554016 (1.5M) [text/plain]
Saving to: ‘trainingdata.txt.1’

     0K .......... .......... .......... .......... ..........  3% 47.5K 31s
    50K .......... .......... .......... .......... ..........  6%  129K 20s
   100K .......... .......... .......... .......... ..........  9%  136K 16s
   150K .......... .......... .......... .......... .......... 13%  149K 14s
   200K .......... .......... .......... .......... .......... 16% 1.57M 11s
   250K .......... .......... .......... .......... .......... 19%  162K 10s
   300K .......... .......... .......... .......... .......... 23%  678K 9s
   350K .......... .......... .......... .......... .......... 26%  612K 7s
   400K .......... .......... .......... .......... .......... 29%  307K 7s
   450K .......... .......... .......... .......... .......... 32%  630K 6s
   500K .......... .......... .......... .......... .......... 36%  699K 5s
   550K .......... .......... .......... .......... .......... 39%  520K 5s
   600K .......... .......... .......... .......... .......... 42%  580K 4s
   650K .......... .......... .......... .......... .......... 46%  516K 4s
   700K .......... .......... .......... .......... .......... 49%  551K 3s
   750K .......... .......... .......... .......... .......... 52%  713K 3s
   800K .......... .......... .......... .......... .......... 56%  720K 3s
   850K .......... .......... .......... .......... .......... 59%  701K 2s
   900K .......... .......... .......... .......... .......... 62%  603K 2s
   950K .......... .......... .......... .......... .......... 65%  670K 2s
  1000K .......... .......... .......... .......... .......... 69%  715K 2s
  1050K .......... .......... .......... .......... .......... 72%  671K 1s
  1100K .......... .......... .......... .......... .......... 75%  752K 1s
  1150K .......... .......... .......... .......... .......... 79%  535K 1s
  1200K .......... .......... .......... .......... .......... 82%  607K 1s
  1250K .......... .......... .......... .......... .......... 85%  675K 1s
  1300K .......... .......... .......... .......... .......... 88%  727K 1s
  1350K .......... .......... .......... .......... .......... 92%  707K 0s
  1400K .......... .......... .......... .......... .......... 95%  632K 0s
  1450K .......... .......... .......... .......... .......... 98%  785K 0s
  1500K .......... .......                                    100%  931K=4.5s

2014-04-15 00:39:23 (341 KB/s) - ‘trainingdata.txt.1’ saved [1554016/1554016]

Parece apenas fornecer estatísticas como o tempo gasto para baixar e tudo. Ele não salva os dados reais da URL.

    
por Ashwin 14.04.2014 / 20:48

2 respostas

1

Parece que você quer netcat ,

  

O Netcat é um utilitário de rede em destaque que lê e grava dados através de conexões de rede, usando o protocolo TCP / IP.   Ele é projetado para ser uma ferramenta confiável de "back-end" que pode ser usada direta ou facilmente por outros programas e scripts. Ao mesmo tempo, é uma ferramenta de depuração e exploração de rede rica em recursos, pois pode criar praticamente qualquer tipo de conexão que você precisa e possui vários recursos internos interessantes.

para mais, você sempre pode man nc

    
por Elliott Frisch 14.04.2014 / 20:51
1

O comando que você está executando está usando o -o flag que faz (de man wget ):

   -o logfile
   --output-file=logfile
       Log all messages to logfile.  The messages are normally reported to
       standard error.

Na verdade, ele não salva o destino do URL para esse arquivo, apenas o erro padrão de wget . Por padrão, wget salva o destino com o mesmo nome do arquivo remoto. Por exemplo, isto

wget http://www.foo.com/index.html

salvará o arquivo como index.html em seu diretório atual. Para especificar um nome diferente para o arquivo, use -O (CAPITAL o , como em Oliver):

   -O file
   --output-document=file
       The documents will not be written to the appropriate files, but all
       will be concatenated together and written to file.  If - is used as
       file, documents will be printed to standard output, disabling link
       conversion.  (Use ./- to print to a file literally named -.)

       Use of -O is not intended to mean simply "use the name file instead
       of the one in the URL;" rather, it is analogous to shell
       redirection: wget -O file http://foo is intended to work like wget
       -O - http://foo > file; file will be truncated immediately, and all
       downloaded content will be written there.
    
por terdon 14.04.2014 / 21:48