domingo, 21 de octubre de 2012

Usar zenity y wget para ver barras progreso de una descarga

Este script no es de mi autoría pero me pareció útil mencionarlo en este blog, con este script podemos mostrar la con una barra de progreso, una descarga iniciada con wget, puede correrse ya sea con doble clic, y aparece una ventana donde te pregunta que enlace de descarga quieres que use el script, o bien puedes agregar el enlace despues de haber escrito en una terminal por ejemplo:
./wget_progreso.sh http://servidor/midescarga.jpg

DOWNLOAD() {
  rand="$RANDOM `date`"
  pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`"
  mkfifo $pipe
  wget -c $1 2>&1 | while read data;do
    if [ "`echo $data | grep '^Length:'`" ]; then
      total_size=`echo $data | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' |  tr -d '()'`
    fi
    if [ "`echo $data | grep '[0-9]*%' `" ];then
      percent=`echo $data | grep -o "[0-9]*%" | tr -d '%'`
      current=`echo $data | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' `
      speed=`echo $data | grep "[0-9]*%" | sed 's/.*\(% [0-9BKMG.]\+\).*/\1/' | tr -d ' %'`
      remain=`echo $data | grep -o "[0-9A-Za-z]*$" `
      echo $percent
      echo "#Descargando $1\n$current of $total_size ($percent%)\nSpeed : $speed/Sec\nEstimated time : $remain"
    fi
  done > $pipe &

  wget_info=`ps ax |grep "wget.*$1" |awk '{print $1"|"$2}'`
  wget_pid=`echo $wget_info|cut -d'|' -f1 `

  zenity --progress --auto-close --text="Conectando a $1\n\n\n" --width="350" --title="Descargando"< $pipe
  if [ "`ps -A |grep "$wget_pid"`" ];then
    kill $wget_pid
  fi
  rm -f $pipe
}

if [ $1 ];then
  DOWNLOAD "$1"
else
  dllink=$(zenity --entry --text "Tu enlace de descarga :" --width="350" --entry-text "" --title="Enlace de descarga")
  if [ $dllink ];then
    DOWNLOAD "$dllink"
  fi
fi





Obtenido de: Blog of SysAdmins

Descarga: wget_progreso.sh

Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

No hay comentarios:

Publicar un comentario

Entre todos ayudemos a mejorar linux