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.