sexta-feira, 6 de abril de 2012

Desligando o micro ao terminar o download

   O script que apresento é uma tarefa automática que desliga o computador imediatamente após o último byte do seu download chegar. Deixo claro que só serve se for usado através do gerenciador de downloads do firefox como na figura abaixo:

   A demonstração será feita com o download "LACUNA COIL - Enjoy The Silence.flv" que aparece no topo da lista. Adapte para situações que você for baixar algo que não queira ficar esperando.

   É necessário subtituir as variáveis parte e inteiro pelo nome do arquivo que está baixando. Recomendo ir no diretório que o gerenciador baixa e com o mouse copie o nome do arquivo e cole como no exemplo do script abaixo.

   Como o gerenciador cria dois arquivos (nome.extensão e nome.extensão.part), a grande sacada é testar se nome.extensão é diferente de zero byte. Somente ao terminar nome.extensão.part o tamanho é transferido para nome.extensão deixando de ser um arquivo vazio.

   O comando until testa se nome.extensão deixou de ser um arquivo vazio. Enquanto isso não sai desta condição, é exibido o tamanho do arquivo a cada 2 segundos através do comando sleep. O comando awk que pega um campo específico (no caso o tamanho do arquivo) é usando para a variável parte.

   Terminado o loop until existe outro test que verifica se o arquivo deixou de ter zero byte e o shutdown entra em ação. Por esta razão, o script tem que ser executado pelo root.

!/bin/bash
# v1.0: 10/21/2006
# v1.1: 04/11/2012

parte="LACUNA COIL - Enjoy The Silence.flv.part"
inteiro="LACUNA COIL - Enjoy The Silence.flv"

until test -s "$inteiro"
  do
   status=`du "$parte" | awk '{printf "%2s\n",$1}'`
   echo Download em andamento: $status kB
   sleep 2
   continue
  done

test -s "$inteiro"
   /sbin/shutdown -h now