Problema com barra de progresso com o comando dialog

1. Problema com barra de progresso com o comando dialog

flavio
gutosoni

(usa KDE Neon)

Enviado em 27/03/2020 - 20:58h

Olá pessoal! Eu gostaria de criar uma barra de progresso para o meu script de backup. O problema é que o comando do rsync (que fica dentro do loop) gera linhas duplicadas (desnecessárias) que aumentam o tamanho do arquivo de log. Eu já incluí dentro do loop o comando
uniq -u 
para gerar linhas únicas, mas esse comando causa um bug na barra de progresso do dialog (trava a barra). Veja um trecho do meu código abaixo.

 dialog --infobox 'Iniciando Backup...' 3 25; sleep 1
declare -i cont=1
{
while [ $cont -le 100 ]; do
echo $cont
cont=$((cont+1))
rsync -avh --progress "/home/$USER/Documentos" "/home/$USER/Backup/" --log-file=arquivo.log
uniq -u arquivo.log
done
} | dialog --gauge 'Aguarde... Copiando Arquivos' 8 70 0
dialog --msgbox 'Backup concluído com sucesso!' 6 35
dialog --title 'Log de Backup' --textbox "$ARQUIVO_LOG" 0 0


Não sei como consertar isso, alguém saberia como aperfeiçoar esse código? Por favor testem esse código e proponham melhorias. Agradeço desde já.


  


2. Re: Problema com barra de progresso com o comando dialog

flavio
gutosoni

(usa KDE Neon)

Enviado em 28/03/2020 - 20:03h

Eu andei pesquisando e encontrei um comando que resolveu meu problema. Não ficou 100% como eu queria, mas é melhor do que usar o loop com while ou for.
Basta apenas isso:
rsync -avh --progress "$dir_origem" "$dir_destino" --log-file="$ARQUIVO_LOG" \ 
| perl -lane 'BEGIN { $/ = "\r"; $|++ } $F[1] =~ /(\d+)%$/ && print $1' \
| dialog --gauge 'Aguarde... Copiando Arquivos' 8 70 0

Eu testei esse comando com arquivos grandes e pequenos. Com arquivos grandes (acima de 1gb) a porcentagem da barra é mais fiel ao processo, ou seja, é executada de uma só vez. Já em arquivos pequenos a barra é executada várias vezes (se repete).

Não faço ideia do que faz esse comando:
perl -lane 'BEGIN { $/ = "\r"; $|++ } $F[1] =~ /(\d+)%$/ && print $1' 

Quem souber me explicar, agradeço.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts