2011-09-09

Apagar el equipo y hacer una captura de pantalla unos segundos antes

Bitelia publicó el día de hoy esta entrada [Descarga del día] AudioBookSleep, cuenta atrás para el cierre del sistema, un programa Windows que permite introducir un tiempo (en minutos) después del cual el sistema se apagará pero no sin antes dejar una captura de pantalla unos instantes antes de que ocurra el cierre del sistema.

Yo me quedé pensando si no sería posible hacer lo mismo en Linux y pensé que tal vez con un script del shell se podría lograr, así que me di a la tarea y escribí un pequeño script de shell que permite apagar el sistema y hacer una captura de pantalla un segundo antes de que se lleve a cabo el cierre del sistema, aquí está:

#!/bin/bash
seconds=$[$1 * 60]
seconds_shot=$[$seconds - 2]
shutdown -P $1 &
sleep ${seconds_shot}s
shot_filename=$(date +'%Y-%m-%d %H.%M.%S').png
scrot "$shot_filename"

Basta con guardar este texto en un archivo llamado shutdown.sh, luego darle permisos de ejecución:

chmod u+x shutdown.sh

Y luego podremos usarlo así:

sudo ./shutdown.sh 60

Nota: Hay que llamar al script usando sudo por que el comando shutdown solo puede ser ejecutado por el root.

Damos el tiempo en minutos y un segundo antes de que se realice el shutdown el script del shell ejecutará el comando scrot que tomará un screenshot y lo guardará en un archivo cuyo nombre será la fecha y hora en la que fue tomado.

cool! :)