Nemyslím si, že to s screen
zvládnete pokud se výstup ve skutečnosti nevykresluje v okně, což pravděpodobně porušuje smysl použití obrazovky. Okno však nemusí být v popředí.
ImageMagick sada obsahuje nástroj s názvem import
můžete k tomu použít. Pokud import --help
vám dá "příkaz nenalezen", nainstalujte si balíček imagemagick, bude dostupný v jakékoli linuxové distribuci.
import
potřebuje název okna. iftop
je terminálové rozhraní, takže abyste se ujistili, že používáte správný název, budete muset nastavit název terminálu GUI, ve kterém běží. Jak to uděláte, závisí na tom, který terminál GUI používáte. Například preferuji terminál XFCE, který by byl:
Terminal -T Iftop -e iftop
Otevře nový terminál se spuštěným iftop
s názvem „Iftop“. Můžete pořídit snímek obrazovky:
import -window Iftop ss.jpg
Pokud to budete dělat každých pět sekund, pravděpodobně budete chtít místo toho otevřít okno se skriptem, abyste mohli znovu použít stejný terminál:
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
Pokud je skript "iftopSShot.sh", spustíte tento Terminal -T Iftop -e iftopSShot.sh
-- kromě toho, že pravděpodobně nepoužíváte Terminal
. Většina linuxových GUI terminálů je spojena se specifickými DE, i když se jedná o samostatné aplikace, které lze používat nezávisle. Věřím, že název výchozího terminálu v KDE je Konsole
a následuje po -T
a -e
konvence; pro GNOME je to pravděpodobně gnome-terminal
(to se mohlo změnit) a zdá se, že používá -t
a ne -T
.
Pozor import
ve výchozím nastavení zazvoní na zvonek, což bude nepříjemné, ale je tam -silent
možnost.
V X prostředí:
Nastavit dynamicky název terminálu:
Z našeho skriptu, způsob, jak změnit název terminálu pomocí ansi sekvencí:
echo -e "\033]0;Term | myApp\007";
Vyfotit png podle názvu okna:
Nyní můžeme vyhledat ID okna podle přesného názvu pomocí wmctrl
a předejte id do import
nástroj:
import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') ~/Pictures/capture.png
Vytvořte gif:
Příklad pro vyladění, každou sekundu pořiďte 5 snímků a poté je převeďte na gif pomocí convert
v nekonečné 2sekundové smyčce.
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