Script para bajar archivos (con Zenity y wget)

Este es un codigo para bash bastante interesante que lo que hace es descargar un archivo cualquiera sea, desde un link determinado y luego nos muestra el progreso de la descarga con una barra de progreso asi también con distintas informaciones de la descarga.

Es script utiliza Zenity y wget.

#!/bin/bash

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 “#Downloading $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=”Connecting to $1\n\n\n” –width=”350″ –title=”Downloading”< $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 “Your download link :” –width=”350″ –entry-text “” –title=”Download url”)
if [ $dllink ];then
DOWNLOAD “$dllink”
fi
fi

Lo grabamos con el nombre que querramos, le damos permisos de ejecucion y listo. También les dejo el codigo en pastebin.com

http://pastebin.com/V8Tnq4RP

Visto en: TuxApuntes


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s