Ubuntu 18.04.5 LTS не-GUI
У меня есть задание cron, настроенное следующим образом, чтобы делать скриншоты рабочего стола каждые 10 минут в указанное ниже время в час.
0,10,20,30,40,50 * * * * DISPLAY=:0 scrot
Мой вопрос заключается в том, чтобы сохранить изображение в каталоге, из которого выполняется команда. Как модифицировать мою работу cron, чтобы она сохранялась в определенном каталоге (например, /tmp/screenshots/), или, в качестве альтернативы, есть способ, чтобы я сказал scrot запускаться из определенного каталога, чтобы он достиг того же результата?
Я не знаю, есть ли условный способ сказать прокрутку, где сохранить файлы.
Существует способ, которым работает в целом, для каждой команды, которая действует на основе текущего каталога. Вместо того, чтобы выполнить команду непосредственно через Cron, команда может использоваться в скрипте оболочки, и Cron просто должен выполнить этот скрипт.
Ваш CRONTAB будет выглядеть так:
0,10,20,30,40,50 * * * * /home/hbkidf/bin/screenshot.sh
и скрипт может выглядеть так:
#!/bin/bash
cd /tmp/screenshots/
DISPLAY=:0 scrot
Чтобы сделать эту работу, вы должны установить флаг исполняемого файла на свой скрипт, например:
chmod u+x /home/hbkidf/bin/screenshot.sh
местонахождение скрипта (домой Справочник, Sub Directory "bin") - это просто пример. Сценарий может быть сохранен в любом месте, если он доступен для пользователя, который работает Cronjob, как.
Этот скрипт - это просто дополнительный слой между CRON и STROT. Это не меняет ничего, связанного с участвующим пользователем (ов). Когда Cronjob работает как USER1, скрипт будет выполнен как user1, и, следовательно, условность будет выполняться как user1.