Screenshots regelmäßig erstellen und speichern

Wer screenshots machen möchte, bedient sich i.d.R. grafischen Tools wie z.B. dem Programm gnome-screenshot. Die Möglichkeiten der Konfiguration sind hier jedoch eingeschränkt.

Doch was, wenn man z.B. einen screenshot pro Minute erstellen will, ohne das Programm grafisch jedesmal neu bedienen zu wollen?  Wie in vielen anderen Situationen auch, sind die Möglichkeiten auf der Kommandozeile umfassender. Um einen (einmaligen) screenshot zu erstellen, genügt:

import -window root screen.png

 

Wer zuvor noch schnell ein paar Fenster schließen will bzw. den Desktop anderweitig vorbereiten will (und hierfür 10 Sekunden Zeit braucht), fügt den Befehl sleep voran:

sleep 10; import -window root screen.png

So wird der screenshot erst nach 10 Sekunden erstellt.

Nun wollen wir aber eine halbe Stunde lang alle 30 Sekunden einen screenshot erstellen. Hierzu basteln wir uns ein kleines Skript (in dem wir später die Zeiten natürlich anpassen können). Der Speicherordner SAVEDIR sollte vor dem Starten des Skriptes bereits existieren.

#!/bin/sh
# Dieses Skript speichert screenshots in regelmäßigen Abständen
HOWMANYSHOTS="60"                # Anzahl der Screenshots
PAUSEINTERVALL="30"              # Intervall in Sekunden
SAVEDIR="$HOME/Desktop/saveshot" # Speicherordner definieren
for i in `seq 1 $HOWMANYSHOTS`   # Loop Beginn
do
import -window root $SAVEDIR/screenshot$i.png # Screenshot
sleep $PAUSEINTERVALL            # Zyklusdauer in Sekunden
done                                                       # Loop Ende
exit

Das obige Skript speichert alle 30 Sekunden (PAUSEINTERVALL=“30″) einen Screenshot im Verzeichnis saveshot auf dem Desktop des Benutzers  – und das 60 mal (insgesamt also 30 Minuten lang). Das Skript funktioniert zuverlässig, wenn es manuell auf der grafischen Oberfläche gestartet wird. Beim Start über cron oder über die Konsole kann es zu Problemen wegen der Kommunikation mit dem X-Server kommen.