<a name="top"></a>

Отслеживание фактического времени выполнения запланированных задач

Экспорт в PDF

Дата создания: 2025/06/23 04:41 (C) mihanik

<a href='javascript:history.back();'><img src=/lib/exe/fetch.php/level_up.png height=35 width=50></a>

Дано

С помощью планировщика задач cron вы создали новое задание.

Надо

Отслеживать время фактического выполнения задания.

Решение

Основная идея заключается в том, что мы перед запуском задания «трогаем» (touch) некий файл и после выполнения задания опять «трогаем» ещё один некий файл.

Реальный пример из моей практики.

В 6:00 нам нужно запустить некие виртуальные машины. Это сделать просто запланировав следующее задание cron

0 6 * * * /opt/scripts/start-vms.sh

Но в некоторых случаях может быть непонятно: стартовал скрипт или нет, и завершилось ли задание.

Немного модифицируем команду выполняемую по расписанию.

0 6 * * * touch /opt/scripts/start-vms.start; /opt/scripts/start-vms.sh; touch /opt/scripts/start-vms.end

Здесь:

файл /opt/scripts/start-vms.start является файлом/флагом начала выполнения запланированного задания, а команда touch изменяет временную метку этого файла;

файл /opt/scripts/start-vms.sh - это непосредственно сам скрипт выполнение которого мы запланировали;

файл /opt/scripts/start-vms.end является файлом/флагом завершения выполнения запланированного задания, а команда touch опять-таки изменяет временную метку этого файла.

Получается, что в одной строке указано несколько команд через «;». Эти команды будут выполняться по очереди вне зависимости от успешности выполнения других команд.

Отработает ваш скрипт успешно или нет, - не важно. Проанализировав временные метки файлов «start» и «end» вы всегда будете знать когда ваш скрипт запустился и когда он завершил работу.

Источники

https://yandex.ru/search

⇑ Наверх ⇑

В моей WIKI постоянно ведётся какая-то работа со статьями. Если у вас возникли вопросы или замечания, можете их отправлять на почту support@mihanik.net