Tip: script para apagar el equipo automáticamente al concluir una descarga

A veces nos estamos bajando algo bastante grande (la imagen iso de nuestra distribución linux favorita, por ejemplo) y lo interrumpimos por no dejar el equipo en funcionamiento y desatendido por mucho rato. A mi me pasa. Por eso me interesa una forma de apagar el equipo automáticamente al terminar una descarga.

Este script no tiene nada de esotérico; es muy, muy sencillo. Esta es la primera versión. Lo mejoraré con más opciones y condiciones de apagado.

Si estamos descargando algo con amule, tengamos en cuenta que este programa lo almacena primero en su carpeta temporal, y después lo pasa a su carpeta “incoming”. Este script cuenta los ficheros que hay en la carpeta “incoming” y cuando la cuenta sube en el número que le especificamos (el número de descargas que estamos esperando que terminen) apaga el equipo.

Las descargas llevadas a cabo de otra manera deberán tener otra condición. Por ejemplo, pudiera ocurrir que con otro programa, al iniciar la descarga se cree el fichero definitivo y uno temporal y al terminar, el temporal desaparezca. En este caso, la variación en la cuenta de ficheros sería -1 en lugar de 1.

Aquí pongo el script por si le sirve a alguien. Para usar “shutdown” tenéis que tener los permisos adecuados.

——————————————————————————————-

#! /bin/bash
# script para apagar el equipo tras concluir una descarga

CARPETA=”/home/Descargas/in/” # directorio donde se aplica la condición
TIEMPO_ESPERA=10 # tiempo de espera en segundos

descargas=1
cuenta1=$(ls -1 $CARPETA | wc -l)
cuenta1=`expr $cuenta1 + $descargas`

while true
do
cuenta=$(ls -1 $CARPETA | wc -l)

if [ $cuenta1 == $cuenta  ]; then
shutdown -h now

else
tim=$(date)
echo $tim
fi

sleep $TIEMPO_ESPERA
done

exit

————————

Hemos usado el programa “wc” que, con su opción “-l” cuenta las líneas que recibe por la entrada estandar o que contiene un fichero.

Deja un comentario