Boa tarde Itamaro, Faça o seguinte, tar tzvfp asterisk.tgz | wc -l, voce ira descobrir o numero fixo de arquivos existentes dentro do pacote do asterisk, após isso fixe o numero usando a logica do script que lhe enviei de compactação. Vale ressaltar que a cada atualização do pacote a ser descompactado, voce irá precisar atualizar esta variavel.
Essa é uma ideia, possivelmente virão outras. Abraços Victor Hugo Leite 2009/11/4 itamaro_liveira <[email protected]> > Na verdade estou desenvolvendo um script em bash para instalação do > Asterisk para facilitar na hora da instalação do servidor. > segue abaixo o código não terminei ainda, preciso dá parte de descompactar > usando dialog --guage. > > Favor se precisar de melhoras fiquem a vontade pra sugerir melhorias. > > #!/bin/bash > # Script criado por Itamar Oliveira > # Este e um script para instalacao de pacotes para servidor IBPX-VOX > clear > trap "" 1 2 3 15 > apt-get install -y dialog 2>/dev/null 1>/dev/null > #Wget com guage baixar arquivos > pega_porcentagem() > { > while true > do > x=`cat $LOG | grep % | cut -c62-64 | tail -n 1` > echo $x > #se o porcentagem igual a 100 para de fazer o loop infinito, pois > arquivo jah > #foi baixado completamente > if [ $x = 100 ] 2>/dev/null 1>/dev/null > then > break; > fi > done > } > > dialog --begin 15 45 --backtitle "Smart Vox IPBX - versao 2.0" --title > "VOX-IPBX" --msgbox 'Apos a finalizacao da instalacao o sistema esta apto a > funcinar.' 10 30 > > #Verifica arquivos necessarios a instalacao > estastdb="/usr/src/estrutura-asteriskdb.sql" > if [ -f "/usr/src/estrutura-asteriskdb.sql" ]; then > estastdb="/usr/src/estrutura-asteriskdb.sql"; fi > if [ -f "$estastdb" ]; then > if [ "$estastdb" != "/usr/src/estrutura-asteriskdb.sql" ]; then op > $estastdb /usr/src/estrutura-asteriskdb.sql; fi > #echo -e "\033[01;32mResponsavel na criacao do banco > asteriskdb\033[00;33m" > else > echo -e "\033[01;33m ERRO FATAL: falta arquivo > estrutura-asteriskdb.sql (/usr/src/estrutura-asteriskdb.sql)\033[00;33m" > exit 1 > fi > > estastcdr="/usr/src/estrutura-asteriskcdrdb.sql" > if [ -f "/usr/src/estrutura-asteriskcdrdb.sql" ]; then > estastcdr="/usr/src/estrutura-asteriskcdrdb.sql"; fi > if [ -f "$estastcdr" ]; then > if [ "$estastcdr" != "/usr/src/estrutura-asteriskcdrdb.sql" ]; then > op $estastcdr /usr/src/estrutura-asteriskcdrdb.sql; fi > #dialog --title "Asteriskcdrdb " --infobox "`echo ;echo -e > "\033[01;32mResponsavel na criacao do banco asteriskcdrdb\033[00;33m`" 15 85 > else > echo -e "\033[01;33m ERRO FATAL: falta arquivo > estrutura-asteriskdb.sql (/usr/src/estrutura-asteriskcdrdb.sql)\033[00;37m" > exit 1 > fi > > #Verificando integridade do sistema > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Verificando integridade do sistema..." --infobox "`echo ;apt-get update > -y`" 15 85 > > #Verificando atualizacao do sistema > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Atualziando a base do sistema" --infobox "`echo ;apt-get upgrade -y`" 15 85 > > # Variavel do sistema > AST=asterisk-1.4.26.2.tar.gz > DIRAST=asterisk-1.4.26.2 > ZAP=zaptel-1.4.12.1.tar.gz > DIRZAP=zaptel-1.4.12.1 > LIBP=libpri-1.4.10.1.tar.gz > DIRLIBP=libpri-1.4.10.1 > ADDONS=asterisk-addons-1.4.9.tar.gz > DIRADDONS=asterisk-addons-1.4.9 > SOUNDS=asterisk-sounds-1.2.1.tar.gz > DIRSOUNDS=asterisk-sounds-1.2.1 > VLIB=voicerlib-4.2.0.0.tar.gz > DIRBLIB=voicerlib-4.2.0.0 > DGV=dgvchannel-1.0.4.tar.gz > DIRDGV=dgvchannel-1.0.4 > > #Links pra daownloas > SITE0="http://downloads.digium.com" > SITE1="http://downloads.asterisk.org" > SITE2="http://downloads.digivoice.com.br" > > # URL dos pacotes > AST_URL_LIBPRI="$SITE1/pub/telephony/libpri/releases/$LIBP" > AST_URL_SRC="$SITE0/pub/asterisk/releases/$AST" > AST_URL_ZPT="$SITE0/pub/zaptel/releases/$ZAP" > AST_URL_ADD="$SITE0/pub/asterisk/releases/$ADDONS" > AST_URL_SND="$SITE0/pub/asterisk/releases/$SOUNDS" > DGV_URL_VOICE="$SITE2/pub/voicerlib/linux/stable/$VLIB" > DGV_URL_DGV="$SITE2/pub/dgvchannel/stable/$DGV" > > #LAST=http://downloads.digium.com/pub/asterisk/releases/$AST > > #variavel do log > LOG=wget.log > > # Instalacao dos pacotes essenciais > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y mc vim openvpn denyhosts iftop mtr whois`" 15 85 > sleep 2 > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y biksemel3 libiksemel-dev libgnutls-dev`" 15 85 > sleep 2 > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y speex libspeex1 libspeex-dev`" 15 85 > sleep 2 > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y bison openssl libasound2-dev libc6-dev libnewt-dev libssl-dev > zlib1g-dev libncurses5-dev libeditline0`" 15 85 > sleep 2 > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y libeditline-dev libedit2 libedit-dev linux-headers-`uname -r` > mpg123`" 15 85 > sleep 2 > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y libmysqlclient15-dev libtiff4 libtiff4-dev libxml2 libxml2-dev`" > 15 85 > sleep 2 > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y build-essential automake fakeroot debhelper autotools-dev cdbs`" > 15 85 > sleep 2 > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y pkg-config gcc g++ cpp make binutils debconf-utils`" 15 85 > sleep 2 > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y debhelper dpkg-dev gettext html2text intltool-debian > module-assistant`" 15 85 > sleep 2 > #dialog --title "Instalando pacotes essenciais do sistemea" --infobox > "`echo ;apt-get install -y `" 15 85 > > # Instalacao do servidor de banco de dados Mysql > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y mysql-server apache2 php5 php5-mysql php-pear php5-gd php5-cli > libnet-ssleay-perl`" 15 85 > sleep 2 > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title > "Instalando pacotes essenciais do sistemea" --infobox "`echo ;apt-get > install -y python-urwid bmon bwm-ng snmp snmpd nbsmtp`" 15 85 > sleep 2 > > # Preparando servidor para o padrao SMARTVOX > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" --title " > Preparando o servidor para o padrao SMARTVOX " --infobox "`echo ;apt-get > install -y php5-sqlite php5-memcache php5-mcrypt php5-xsl`" 15 85 > sleep 2 > > > #Baixando os pacotes fontes para compilacao do asterisk > #verificando se ja existe o pacote > if [ ! -f $east ] > then > # echo "Ja existe" 2>/dev/null 1>/dev/null > > #else > wget -o $LOG $AST_URL_SRC & > ( pega_porcentagem ) | dialog --begin 15 45 --backtitle "Smart Vox > IPBX - versao 2.0 " --title " Baixando pacote src do $AST " --gauge " > Aguarde, fazendo download do arquivo $AST ..." 0 0 > fi > > #Baixando o pacote fontes do asterisk-addons > if [ ! -f $ADDONS ] > then > #echo "Ja existe" 2>/dev/null 1>/dev/null > #else > wget -o $LOG $AST_URL_ADD & > ( pega_porcentagem ) | dialog --begin 15 45 --backtitle "Smart Vox > IPBX - versao 2.0 " --title " Baixando pacote src do $ADDONS " --gauge " > Aguarde, fazendo download do arquivo $ADDONS ..." 0 0 > fi > > #Baixando o pacote src da libpri > if [ ! -f $LIBP ] > then > #echo "Ja existe" 2>/dev/null 1>/dev/null > #else > wget -o $LOG $AST_URL_LIBPRI & > ( pega_porcentagem ) | dialog --begin 15 45 --backtitle "Smart Vox > IPBX - versao 2.0 " --title " Baixando pacote src da $LIBP " --gauge " > Aguarde, fazendo download do arquivo $LIBP ..." 0 0 > fi > > #Baixando o pacote src da zaptel > if [ ! -f $ZAP ] > then > # echo "Ja existe" 2>/dev/null 1>/dev/null > #else > wget -o $LOG $AST_URL_ZPT & > ( pega_porcentagem ) | dialog --begin 15 45 --backtitle "Smart Vox > IPBX - versao 2.0 " --title " Baixando pacote src da $ZAP " --gauge " > Aguarde, fazendo download do arquivo $ZAP ..." 0 0 > fi > > #Baixando o pacote src da Asterisk-sound > if [ ! -f $SOUNDS ] > then > # echo "Ja existe" 2>/dev/null 1>/dev/null > #else > wget -o $LOG $AST_URL_SND & > ( pega_porcentagem ) | dialog --begin 15 45 --backtitle "Smart Vox > IPBX - versao 2.0 " --title " Baixando pacote src da $SOUNDS " --gauge " > Aguarde, fazendo download do arquivo $SOUNDS ..." 0 0 > fi > > #Baixando o pacote src da voiceliber > if [ ! -f $VLIB ] > then > # echo "Ja existe" 2>/dev/null 1>/dev/null > #else > wget -o $LOG $DGV_URL_VOICE & > ( pega_porcentagem ) | dialog --begin 15 45 --backtitle "Smart Vox > IPBX - versao 2.0 " --title " Baixando pacote src da $VLIB " --gauge " > Aguarde, fazendo download do arquivo $VLIB ..." 0 0 > fi > > #Baixando o pacote src da DGV > if [ ! -f $DGV ] > then > # echo "Ja existe" 2>/dev/null 1>/dev/null > #else > wget -o $LOG $DGV_URL_DGV & > ( pega_porcentagem ) | dialog --begin 15 45 --backtitle "Smart Vox > IPBX - versao 2.0 " --title " Baixando pacote src da $DGV" --gauge " > Aguarde, fazendo download do arquivo $DGV ..." 0 0 > fi > > #Extracao dos arquivos sources para compilacao do asterisk > if [ ! -d $DIRAST ] > then > # echo "Ja existe" 2>/dev/null > #else > dialog --begin 10 20 --backtitle "Smart Vox IPBX - versao 2.0" > --title "Extraindo pacotes src do $AST" --gauge "`tar xvfz $AST`" 25 95 > fi > > é isso aí pessoal. Aí está o código > Valeu mesmo > > > --- Em [email protected], "itamaro_liveira" > <itamaro_live...@...> escreveu > > > > Pessoal, boa tarde. > > > > Estou fazendo um script em bash usando dialog, e gostaria que o script > compactasse e descompactasse, usando tar.gz mostrando uma barra de progresso > no dialog. Como faço isso? > > Obrigado. > > > > > > > ------------------------------------ > > --------------------------------------------------------------------- > 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: [email protected] > --------------------------------------------------------------------- > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > --------------------------------------------------------------------- > Servidor Newsgroup da lista: news.gmane.org > Grupo: gmane.org.user-groups.programming.shell.brazil > > Links do Yahoo! Grupos > > > [As partes desta mensagem que não continham texto foram removidas]
