shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Assunto: Re: [shell-script] Barra de progresso no CP


From: bruno dias
Subject: Assunto: Re: [shell-script] Barra de progresso no CP
Date: Wed, 20 Mar 2019 21:37:16 +0000 (UTC)


A solução é boa, é eu já vinha usando, mas queria mesmo é poder delimitar o campo da barra do script, da para usar sem, mas queria saber se tem como. 
 

Achei isso:

There is now an official way to do this in rsync (version 3.1.0 protocol version 31, Tested with Ubuntu Trusty 14.04).

#> ./rsync -a --info=progress2 /usr .
    305,002,533  80%   65.69MB/s    0:00:01  xfr#1653, ir-chk=1593/3594)

I tried with my /usr folder because I wanted this feature for tranferring whole filesystems, and /usrseemed to be a good representative sample.

The --info=progress2 gives a nice overall percentage, even if it's just a partial value. In fact, my /usr folder is more than 6 gigs:

#> du -sh /usr
6,6G    /usr/

and rsync took a lot of time to scan it all. So almost all the time the percentage I've seen was about 90% completed, but nonetheless it's comforting to see that something is being copied :)

References:


Em qua, 20 de mar de 2019 18:13, Alfredo Casanova <address@hidden> escreveu:
Pesquisa o comando pv.
Não sei se é possível aplicar ao rsync.

Em qua, 20 de mar de 2019 17:31, address@hidden [shell-script] <address@hidden> escreveu:
 

Prezados tudo bem?


Estava copiando cerca de 400GB esses dias e demorou demais, senti a falta de uma barra de progresso/porcentagem, descobri que poderia usar o 'rsync -r --progress SOURCE DEST'.


Essa solução não me agradou, entao como eu amo nosso querido shell, me dispus a criar uma para o CP, e ficou muito boa, porém, sabe quando falta aquele detalhe, aquele tempero na comida? então, só que daqui para frente eu não sei mais o que fazer para resolver isso, segue o código abaixo.


Como eu quero fazer, eu quero que a barra seja exibida da seguinte forma:


[ 100% ..................................................................................................... ]


Como ela é exibida:


[ 100% .....................................................................................................


O número da porcentagem vai variando, e os pontos também, como eu fiz especifico para usar com o CP, tudo funciona muito bem, ele faz tudo baseado em procentagem, e em tamanho do arquivo, para poder calcular a porcentagem, porém, queria colocar um limite igual no 1° exemplo, mas o colchete do final vai ficar andando.


Alguem teria uma solução?


Desde já muito obrigado pela ajuda de todos.



Código:

---------------------------------------------------------------------------------------------------------

#!/bin/bash

car=""
origem="$1"
destino="$2"

tamanho="$(du -bs $origem | awk '{print $1}')"

zeroo=0
umm=1

tput civis -- invisible

while [ "$zeroo" -lt "$umm" ]; do
cp -aR $origem $destino & pid=$!

    while ps -p $pid &>/dev/null; do
   
    tamanho_origem="$(du -bs $origem | awk '{print $1}')"
    tamanho_destino="$(du -bs $destino | awk '{print $1}')"
   
    indice=$(($tamanho_destino * 100 / $tamanho_origem))
       
    car="$(echo "`seq -s '.' $indice | tr -d [:digit:]`")"
    for h in er
        do
                echo -ne "\\r[ $indice% $car"

        done

   
        umm=$((umm - 1))
        tput cnorm -- normal
    done
echo ""
done



---------------------------------------------------------------------------------------------------------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]