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