[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] script de download
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] script de download |
Date: |
Sat, 22 Oct 2005 20:40:50 -0200 |
Veja bem, vc não precisa pegar o tamanho do arquivo que vc esta
baixando pra saber quantos porcento do arquivo foi baixado. Quando vc
executa um wget com a opção -b vc gera um arquivo chamado wget-log e,
quando inicia o download ele tem o seguinte conteudo:
0K .......... .......... .......... .......... .......... 0% 45.79 KB/s
50K .......... .......... .......... .......... .......... 0% 180.05 KB/s
100K .......... .......... .......... .......... .......... 1% 92.11 KB/s
po, ai vem todo um estudo de como pegar estes valores para jogar num
galge do dialog.
tentei de varias formas, esta funcionou. apos executar, lance estas linhas
#!/bin/bash
LOG="wget-log"
FILE="HelixPlayer-1.0.4-4.src.rpm"
MSG="Baixando o arquivo $FILE"
URL="ftp://ftp.linux.ncsu.edu/pub/fedora/linux/core/4/SRPMS/"
error() {echo "fail to load $FILE in $URL" ; exit 1;}
(wget -o $LOG -b ${URL}${FILE} || error && tail -f $LOG | while read LINHA
do echo $LINHA | grep % | cut -f 2 -d K | cut -d % -f 1 | sed 's/[^0-9]//g'
done) | dialog --gauge "$MSG" 8 40 0
por partes:
0) se o wget executa corretamente, ele chama o tail-f por meio do &&
1) o tail -f <arquivo> mostra o final do arquivo em tempo de voo, ou
seja, conforme o arquivo eh atualizado, ele mostra na tela.
2) uso o while read linha para ler cara linha do wget e processa-la.
3) o grep % pega só as linhas que tem a informação
4) o primeiro cut tira o tamanho do arquivo que foi baixado.
5) o segundo cut tira o que tem de informação depois de '%'
6) o sed transforma tudo que não seja algarismos em nada
7) o | dialog --gauge... manda o resultado para o gauge, pode demorar
dependendo do tamanho do arquivo.
8) se o wget não puder executar, chama a função error com o ||
pra entender melhor, executa o tail -f até o | dialog e vai alterando
os pipes, retirando alguns, observando o fluxo de dados.não foi facil
usar sed junto de tail -f, não sei por que tive que enfiar um while
ai, mas de repente alguem descobre uma maneira mais facil. =)
Tem alguns problemas mas... ta 90% pronto.
[]s
Tiago
> > Em 22/10/05, jackson braga<address@hidden> escreveu:
> > > olá estava fazendo um script que fize-se a contagem de download em uma
> > > barra
> > > de contagem usando shellscript e dialog, ate aew tudo bem, mais quando
> > > execulto o script a barra nao sai de 0% e nem faz o download do
> arquivo,
> > > alguem poderia me ajudar segue o script.
> > >
> > > abs
> > >
> > >
> > > #!/bin/bash
> > > TITLE = "Fazendo download..."
> > > MSG = "Fazendo download do arquivo..."
> > > INTERVALO = 1
> > > FILE =
> > >
> "http://www.linuxti.pro.br/patchs/netqmail-1.05-dns.patch"
> > > die() { echo "Erro: $*" ; exit 1; }
> > > sizeof() { du -h "$1" | cut -f1; }
> > > running(){ ps $1 | grep $1 > /dev/null; }
> > > # faz o download do $FILE aqui
> > > wget -b $FILE
> > > CPPID=$!
> > > trap "$CPPID" 2 15
> > > (
> > > while running $CPPID; do
> > > COPIADO=$(sizeof $FILE)
> > > echo $COPIADO" copiados..."
> > > sleep $INTERVALO
> > > done
> > > )
> > > dialog --title "$TITLE" --gauge "$MSG" 8 40 0
> > >
> > > ---
> > >
> > > abs
> > >
> > > --
> > > Jackson Braga
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> > >
> ---------------------------------------------------------------------
> > > Esta lista não admite a abordagem de outras liguagens de programação,
> > como
> > > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> > prévio
> > > aviso.
> > >
> ---------------------------------------------------------------------
> > > Sair da lista:
> address@hidden
> > >
> ---------------------------------------------------------------------
> > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas-discussao.cjb.net
> > >
> ---------------------------------------------------------------------
> > >
> > >
> > >
> > >
> > > Yahoo! Grupos, um serviço oferecido por:
> > >
> > > ________________________________
> > > Links do Yahoo! Grupos
> > >
> > >
> > > Para visitar o site do seu grupo na web, acesse:
> > > http://br.groups.yahoo.com/group/shell-script/
> > >
> > > Para sair deste grupo, envie um e-mail para:
> > > address@hidden
> > >
> > > O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço
> > do
> > > Yahoo!.
> >
> >
> >
> ---------------------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação,
> como
> > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio
> > aviso.
> >
> ---------------------------------------------------------------------
> > Sair da lista:
> address@hidden
> >
> ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
> > http://www.listas-discussao.cjb.net
> >
> ---------------------------------------------------------------------
> >
> >
> >
> > *Yahoo! Grupos, um serviço oferecido por:*
> > ------------------------------
> > *Links do Yahoo! Grupos*
> >
> > - Para visitar o site do seu grupo na web, acesse:
> > http://br.groups.yahoo.com/group/shell-script/
> > - Para sair deste grupo, envie um e-mail para:
> >
> address@hidden<address@hidden?subject=Unsubscribe>
> > - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> > Serviço do Yahoo!
> <http://br.yahoo.com/info/utos.html>.
> >
> >
>
>
> --
> Jackson Braga
> 55 92 9159-8940
> TI - Loginet Informatica Ltda
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
>
>
>
> Yahoo! Grupos, um serviço oferecido por:
>
> ________________________________
> Links do Yahoo! Grupos
>
>
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>
> Para sair deste grupo, envie um e-mail para:
> address@hidden
>
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!.
- script de download, jackson braga, 2005/10/22
- Re: [shell-script] script de download, Tiago Barcellos Peczenyj, 2005/10/22
- Re: [shell-script] script de download, jackson braga, 2005/10/22
- Re: [shell-script] script de download,
Tiago Barcellos Peczenyj <=
- Re: [shell-script] script de download, jackson braga, 2005/10/22
- Re: [shell-script] script de download, MrBiTs, 2005/10/23
- Re: [shell-script] script de download, jackson braga, 2005/10/23
- Re: [shell-script] script de download, MrBiTs, 2005/10/23
- Re: [shell-script] script de download, jackson braga, 2005/10/23
- Re: [shell-script] script de download, MrBiTs, 2005/10/23
- Re: [shell-script] script de download, Tiago Barcellos Peczenyj, 2005/10/23
- Re: [shell-script] script de download, Fabricio Lopes de Souza, 2005/10/24
- Re: [shell-script] script de download, Fabricio Lopes de Souza, 2005/10/24