Non penso che sarai in grado di farlo con screen
a meno che l'output non sia effettivamente visualizzato in una finestra, il che probabilmente rende inutile l'uso di screen. Tuttavia, la finestra non deve essere in primo piano.
ImageMagick suite contiene un'utilità chiamata import
puoi usare per questo. Se import --help
ti dà "comando non trovato", installa il pacchetto imagemagick, sarà disponibile in qualsiasi distribuzione Linux.
import
richiede il nome della finestra. iftop
è un'interfaccia terminale, quindi per assicurarti di usare il nome giusto, dovrai impostare il titolo del terminale GUI in cui viene eseguito. Il modo in cui lo fai dipende dal terminale GUI che usi. Ad esempio, preferisco il terminale XFCE, che sarebbe:
Terminal -T Iftop -e iftop
Apre un nuovo terminale che esegue iftop
con il titolo "Iftop". Uno screenshot può essere preso:
import -window Iftop ss.jpg
Se lo farai ogni cinque secondi, probabilmente vorrai invece aprire la finestra che esegue uno script in modo da poter riutilizzare lo stesso terminale:
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
Se lo script è "iftopSShot.sh", dovresti iniziare questo Terminal -T Iftop -e iftopSShot.sh
-- tranne che probabilmente non stai usando Terminal
. La maggior parte dei terminali GUI di Linux sono associati a specifici DE, sebbene siano applicazioni autonome che possono essere utilizzate indipendentemente. Credo che il nome del terminale predefinito su KDE sia Konsole
e segue il -T
e -e
convegni; per GNOME è probabilmente gnome-terminal
(questo potrebbe essere cambiato) e sembra usare -t
e non -T
.
Attenzione import
per impostazione predefinita suona il campanello, che diventerà irritante, ma c'è un -silent
opzione.
Tra una X ambiente:
Imposta dinamicamente il titolo del terminale:
Dal nostro script, un modo per cambiare il titolo del terminale usando le sequenze ansi:
echo -e "\033]0;Term | myApp\007";
Cattura un png in base al titolo della finestra:
Ora possiamo cercare l'id della finestra in base al titolo esatto usando wmctrl
e passa l'id al import
utilità:
import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') ~/Pictures/capture.png
Crea una gif:
Esempio da modificare, fai 5 catture ogni secondo e poi convertile in una gif usando convert
, in un ciclo infinito di 2 secondi.
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