No creo que puedas hacer esto con screen
a menos que la salida se represente realmente en una ventana, lo que probablemente anula el uso de la pantalla. Sin embargo, la ventana no tiene que estar en primer plano.
La ImageMagick suite contiene una utilidad llamada import
puedes usar para esto. Si import --help
te da "comando no encontrado", instala el paquete imagemagick, estará disponible en cualquier distribución de linux.
import
necesita el nombre de la ventana. iftop
es una interfaz de terminal, por lo que para asegurarse de usar el nombre correcto, deberá establecer el título de la terminal GUI en la que se ejecuta. La forma de hacerlo depende de la terminal GUI que use. Por ejemplo, prefiero la Terminal XFCE, que sería:
Terminal -T Iftop -e iftop
Abre una nueva terminal ejecutando iftop
con el título "Iftop". Se puede tomar una captura de pantalla de eso:
import -window Iftop ss.jpg
Si va a hacer esto cada cinco segundos, probablemente quiera abrir la ventana que ejecuta un script para poder reutilizar el mismo terminal:
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
Si el script es "iftopSShot.sh", entonces comenzaría este Terminal -T Iftop -e iftopSShot.sh
-- excepto que probablemente no estés usando Terminal
. La mayoría de los terminales GUI de Linux están asociados con DE específicos, aunque son aplicaciones independientes que se pueden usar de forma independiente. Creo que el nombre de la terminal predeterminada en KDE es Konsole
y sigue el -T
y -e
convenciones; para GNOME probablemente sea gnome-terminal
(esto puede haber cambiado) y parece usar -t
y no -T
.
Cuidado import
por defecto suena el timbre, lo que se volverá irritante, pero hay un -silent
opción.
En una X entorno:
Establecer dinámicamente el título del terminal:
Desde nuestro script, una forma de cambiar el título de la terminal usando secuencias ansi:
echo -e "\033]0;Term | myApp\007";
Capturar un png por título de ventana:
Ahora podemos buscar la identificación de la ventana por el título exacto usando wmctrl
y pasa el id al import
utilidad:
import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') ~/Pictures/capture.png
Crear un gif:
Ejemplo para modificar, toma 5 capturas cada segundo y luego conviértelas en un gif usando convert
, en un bucle infinito de 2 segundos.
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