seq 50000 |
parallel -P 10 curl -r 0-50000 -L '"http://domain.com/teste.php?a=2&b=3&name="'{} -o {}.html -a {}.log
primeiro post desculpe se eu fiz alguma bagunça aqui =)
Usando a versão do servidor Ubuntu 14.04lts 64bits.
Eu tenho uma lista ( url.list ) com apenas URLs para download, um por linha, que se parece com isso:
http://domain.com/teste.php?a=2&b=3&name=1
http://domain.com/teste.php?a=2&b=3&name=2
...
http://domain.com/teste.php?a=2&b=3&name=30000
Como você pode ver, existem muitas linhas no arquivo (neste caso, 30000). Por causa disso eu estou usando um truque para baixar muitas URLs simultaneamente com isso:
cat url.list | xargs -n 1 -P 10 <<MAGIC COMMAND THAT WILL SAVE ME>>
O problema é que eu gostaria de renomear o arquivo de saída com o mesmo valor do campo de nome, como: 1.html, 2.html, ..., 30000.html ecc e usar o curl para limitar o tamanho do arquivo para 50KB. Então o comando curl deve ser algo como:
curl -r 0-50000 -L $URL -o $filename.html -a $filename.log
Como posso fazer isso?
Eu posso analisar a saída do pipe com echo $ URL | sed -n -e 's /^.* name = // p' mas não sei como usar isso na mesma linha pegando a saída de um pipe em 2 variáveis ($ URL e $ filename) .
Eu tentei isso sem sucesso:
cat url.list | xargs -n 1 -P 10 | filename=$(sed -n -e 's/^.*name=//p') ; curl -r 0-50000 -L $URL -o $filename.html -a $filename.log
Obrigado antecipadamente
seq 50000 |
parallel -P 10 curl -r 0-50000 -L '"http://domain.com/teste.php?a=2&b=3&name="'{} -o {}.html -a {}.log
Tags curl download limit parallelism