Date Редакция Категория comp Теги linux

Допустим, нужно сделать несколько десятков снимков экрана работающей программы через заданные интервалы времени. Автоматизировать процесс получения снимков можно с помощью утилиты командной строки scrot.

Установить scrot

sudo apt-get install scrot

Захватить снимки экрана с помощью scrot

Для этого наберем в окне терминала следующие команды:

while true; do scrot -d int -u 'filename.jpg|png' -e 'mv $f /file/path/to/store/screenshots'; done

Здесь:

  • int – длительность интервала между снимками, в секундах;
  • -u – делает снимок активного окна;
  • filename – имя файла снимка. Можно использовать переменные %Y, %m, %d, %H, %M, %S $w, $h, обозначающие год, месяц, день, час, минуту, секунду, ширину и высоту снимка соответственно;
  • jpg|png – снимок сохраняется в одном из форматов: jpg или png;
  • file/path/to/store/screenshots – путь к каталогу, в котором будут сохраняться снимки.

Пусть, к примеру, снимки будут делаться каждые 5 секунд и сохранятся в каталоге pics. Наберем для этого:

while true; do scrot -d 5 -u '%Y-%m-%d-%H:%M:%S.png' -e 'mv $f ~/pics/'; done

Нажатием "Ctrl + z" прерываем процесс получения снимков.

В зависимости от размеров монитора и ресурсов вашего компьютера процесс получения снимка может занимать 1-2 с. Поэтому, установив интервал между снимками равным 5 с, вы реально будете получать снимки через 6-7 с.

Сохраним набранные команды в файле сценариев auto-screenshot.sh

#!/bin/bash

for i in {1..100} # сделать 100 снимков
do
   scrot -d 5 -u '%Y-%m-%d-%H:%M:%S.png' -e 'mv $f ~/pics/';
done

присвоим ему права на исполнение

chmod +x ~/auto-screenshot.sh

и запустим в окне терминала:

./auto-screenshot.sh


Комментарии

comments powered by Disqus