Вопрос об изменении команд каждую минуту в Cron

Я редактировал свой crontab с помощью crontab -e -u и вот содержание:

*/1 * * * * export DISPLAY=:0 && xset dpms force off 

*/1 * * * * export DISPLAY=:0 && xset dpms force on

Как сделать так, чтобы время включения оставалось на 1 минуту, чтобы дисплей был выключен на 1 минуту, а затем на 1 минуту?

1
задан 29 July 2021 в 13:46

1 ответ

Похоже, вам нужны строки crontab, которые выполняют команду в чередующиеся минуты, например, первая команда в четные минуты (0,2,4 и т. Д.), А вторая команда в нечетные минуты (1,3,5 и т. Д.) .

Это можно сделать следующим образом:

0-59/2 * * * * export DISPLAY=:0 && xset dpms force off 

1-59/2 * * * * export DISPLAY=:0 && xset dpms force on

Объяснение :

Запись минут здесь использует 2 разных элемента - диапазоны и значения шага .

Диапазон имеет формат ? -? , поэтому мы определяем два разных диапазона с интервалом в 1 минуту ( 0-59 и 1 -59 ).

Часть / 2 - это значение шага . Используя это, мы указываем cron выполнять только каждое второе значение в диапазоне.

Используя весь возможный диапазон минут (но с разными начальными значениями), мы гарантируем, что команды выполняются каждую переменную минуту, но с интервалом в 1 минуту.

Интересный факт :

Первый диапазон также можно ввести как 0-58 , и это не будет иметь никакого значения (поскольку нечетные значения в этом диапазоне пропускаются).

5
ответ дан 20 August 2021 в 10:31

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

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