Выполнение задания cron в специальном каталоге

Ubuntu 18.04.5 LTS не-GUI

У меня есть задание cron, настроенное следующим образом, чтобы делать скриншоты рабочего стола каждые 10 минут в указанное ниже время в час.

0,10,20,30,40,50 * * * * DISPLAY=:0 scrot

Мой вопрос заключается в том, чтобы сохранить изображение в каталоге, из которого выполняется команда. Как модифицировать мою работу cron, чтобы она сохранялась в определенном каталоге (например, /tmp/screenshots/), или, в качестве альтернативы, есть способ, чтобы я сказал scrot запускаться из определенного каталога, чтобы он достиг того же результата?

0
задан 13 March 2021 в 21:07

1 ответ

Я не знаю, есть ли условный способ сказать прокрутку, где сохранить файлы.

Существует способ, которым работает в целом, для каждой команды, которая действует на основе текущего каталога. Вместо того, чтобы выполнить команду непосредственно через 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.

0
ответ дан 18 March 2021 в 23:26

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

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