Eu prefiro o ImageMagick.
Observação: verifique as leis de privacidade aplicáveis, pois as capturas de tela podem conter dados confidenciais.
Agora, sobre como fazer isso:
Você precisa ter o pacote ImageMagick:
# apt-get install imagemagick
Em seguida, crie um script Bash para capturar a captura de tela, salve-a em algum lugar (estou usando um nome de arquivo de exemplo de /path/to/your/script.sh
) e torne-a executável ( chmod +x /path/to/your/script.sh
):
#!/bin/bash
# change this for a different date format - see: man date
export DATE='date '+%Y-%m-%d_%H%M%S''
# display to take the screenshot of
export DISPLAY=:0
# filename to screenshot
export SCREENSHOT_FILENAME="/tmp/screenshot-$DATE.png"
/usr/bin/import -window root "$SCREENSHOT_FILENAME"
Por fim, configure um script cron para fazer isso por você ( crontab -e
, adicione essa linha ao final):
*/2 * * * * /path/to/your/script.sh
Isto irá, a cada dois minutos, tentar tirar screenshots do display 0 (que é o padrão; se você tiver uma configuração multi-menu, você pode descobrir qual janela você precisa), e salvá-las como PNGs com timestamp para / tmp (este é um local de exemplo que provavelmente existirá; você pode querer usar um diretório diferente).
Advertências: não há verificação de espaço livre, portanto, o script pode preencher todo o espaço no local de destino. O script assume que o usuário está logado na tela: 0 (se outro usuário estiver logado, o usuário estiver logado em uma tela diferente ou não houver sessão X, o script falhará).