Ich glaube nicht, dass Sie dies mit screen
tun können es sei denn, die Ausgabe wird tatsächlich in einem Fenster gerendert, was wahrscheinlich den Zweck der Verwendung von screen zunichte macht. Das Fenster muss jedoch nicht im Vordergrund sein.
Die ImageMagick suite enthält ein Dienstprogramm namens import
kannst du dafür verwenden. Wenn import --help
gibt Ihnen "Befehl nicht gefunden", installieren Sie das Paket imagemagick, es wird in jeder Linux-Distribution verfügbar sein.
import
benötigt den Namen des Fensters. iftop
ist eine Terminalschnittstelle. Um sicherzustellen, dass Sie den richtigen Namen verwenden, müssen Sie den Titel des GUI-Terminals festlegen, in dem es ausgeführt wird. Wie Sie das tun, hängt davon ab, welches GUI-Terminal Sie verwenden. Zum Beispiel bevorzuge ich das XFCE-Terminal, das wäre:
Terminal -T Iftop -e iftop
Öffnet ein neues Terminal mit iftop
mit dem Titel "Iftop". Ein Screenshot davon kann gemacht werden:
import -window Iftop ss.jpg
Wenn Sie dies alle fünf Sekunden tun, möchten Sie wahrscheinlich stattdessen das Fenster öffnen, in dem ein Skript ausgeführt wird, damit Sie dasselbe Terminal wiederverwenden können:
count=0;
while ((1)); do
iftop &
pid=$!
sleep 1 # make sure iftop is up
count=$(($count+1))
import -window Iftop iftop_sshot$count.jpg
kill $pid
sleep 5
done
Wenn das Skript "iftopSShot.sh" ist, dann würden Sie diesen Terminal -T Iftop -e iftopSShot.sh
starten -- außer Sie verwenden wahrscheinlich nicht Terminal
. Die meisten Linux-GUI-Terminals sind mit bestimmten DEs verbunden, obwohl es sich um eigenständige Anwendungen handelt, die unabhängig verwendet werden können. Ich glaube, der Name des Standardterminals auf KDE ist Konsole
und es folgt dem -T
und -e
Konventionen; für GNOME ist es wahrscheinlich gnome-terminal
(dies kann sich geändert haben) und es scheint -t
zu verwenden und nicht -T
.
Achtung import
standardmäßig klingelt die Glocke, was irritierend wird, aber es gibt einen -silent
Option.
In einem X Umgebung:
Den Terminaltitel dynamisch festlegen:
Aus unserem Skript eine Möglichkeit, den Titel des Terminals mithilfe von Ansi-Sequenzen zu ändern:
echo -e "\033]0;Term | myApp\007";
Erfassen Sie ein PNG nach Fenstertitel:
Jetzt können wir mit wmctrl
anhand des genauen Titels nach der Fenster-ID suchen und übergeben Sie die ID an import
Dienstprogramm:
import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') ~/Pictures/capture.png
Gif erstellen:
Beispiel zum Optimieren, nehmen Sie jede Sekunde 5 Aufnahmen und konvertieren Sie sie dann mit convert
in ein GIF , in einer Endlosschleife von 2 Sekunden.
rm -f /tmp/*png && for i in {1..5}; do import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') /tmp/$i.png && sleep 1; done && convert -delay 200 -loop 0 /tmp/*.png animation.gif