Cronjob для снимков экрана не работает

Я пытаюсь запланировать сценарий Python, который каждую минуту делает снимок экрана и сохраняет его в папке с датой и временем этого дня.

import os
from datetime import datetime

path = "/home/user/Desktop/screenshots/"

today = datetime.today().strftime('%d-%m-%Y')
time = datetime.now().time().strftime('%H-%M-%S')

os.chdir(path)

try:
    os.mkdir(today)
except:
    pass

os.chdir(today)
os.system("scrot '" + time + ".png'")

I Я использую cronjob для запуска этого скрипта каждую минуту. В файл crontab добавлена ​​строка:

* * * * * /usr/bin/python3 /home/user/Desktop/screenshots/screenshotTake.py

Это то, что выводится в системные журналы:

Dec 14 11:34:02 username CRON[7668]: (user) CMD (/usr/bin/python3 /home/user/Desktop/screenshots/screenshotTake.py)
Dec 14 11:34:02 username CRON[7667]: (CRON) info (No MTA installed, discarding output)

Теперь папка создается нормально, но не сохраняются скриншоты. Я попытался записать какой-то текст в файл журнала, но снова был создан файл logs.txt, но текст не был записан в файл.

Я понимаю, что создание сценария python и запуск простой команды scrot может оказаться излишним, но я попытался сделать это с помощью сценария оболочки, и результат был таким же. Папка создается, но скриншоты не сохраняются. Также пробовал использовать библиотеку pyscreenshot, но результат тот же.

0
задан 14 December 2019 в 09:13

1 ответ

У меня та же проблема. Я считаю, что проблема возникла из-за того, что мы не указываем дисплей, который должен использовать сценарий. В вашем случае я предлагаю попробовать указать DISPLAY=:0 в вызове системной функции.

os.system("DISPLAY=:0 scrot '" + time + ".png'")

Мой сценарий короче вашего, но эффект тот же. Я сохраняю в /bin/take-screenshot

#!/bin/sh
mkdir -p $HOME/.logger/$(date +'%Y%m%d')/screenshots
DISPLAY=:0 import -window root $HOME/.logger/$(date +'%Y%m%d')/screenshots/$(date +'%H%M').png

и мой cronjob

*/5 * * * 1-5 /bin/take-screenshot

Ссылки: Scrot: инструмент командной строки для автоматического создания скриншотов рабочего стола/сервера в Linux

0
ответ дан 19 August 2020 в 23:10

Другие вопросы по тегам:

Похожие вопросы: