Grab several screenshots from specified window in linux
This was a short bash script I wrote to help document some startup problems on a server.
The script was grabbing screen dumps from iDRAC during boot on a RHEL6 server, but it can be used on other distributions as well since the console command xwd is common.
#!/bin/bash
# Description:
# Grab screenshot of a specified X-window and wait X-seconds
# Use xwininfo to find the Window id to the window you are going to 
# grab screenshots from.
xwininfo="0x4c0001a"
# filename for output
outfile="outfile-"
# seconds sleep between grabs
sleeping=2
padding="000" # put as many padding zeros as you want on filename
for ((i=0; i<1000; i+=1))
do
        # Perform the actual screenshot grab
        xwd -id $xwininfo -out $outfile-${padding:${#i}}$i.xwd
        # Convert the xwd file to a better image format like PNG
        convert $outfile-${padding:${#i}}$i.xwd $outfile-${padding:${#i}}$i.png
        # Delete the converted XWD-file
        rm -f $outfile-${padding:${#i}}$i.xwd
        # wait 
        sleep $sleeping
done
Stop the script after you have grabbed enough screenshots.
I ended up with several files named outfile-000.png outfile-001.png ...
Deleted those files that were not needed and sent the images a documentation of the booting process.
Thank you very much for this resource. I modified it to skip the PNG conversion and instead create an animated gif which gives a rudimentary screen capture movie, suitable for showing software demos of a few seconds long in presentations:
convert -delay 50 `ls *.xwd` -loop 3 animated.gif
rm `ls *.xwd`
Really appreciate you making this script available – thanks!
You could also use this with the LaTeX package “Animate” to create an animated PDF movie from screen capture – with control over pause lengths, click to continue, etc.