Как заставить работу cron запускаться через x секунд?

Я думаю, что неправильно понимаю Kubernetes CronJobs. На экзамене CKAD был вопрос, чтобы CronJob запускался каждую минуту, но он должен запускаться через произвольный промежуток времени. Я не вижу никаких свойств для CronJobs или Jobs, чтобы они запускались через определенное время. Должно ли это быть частью строки cron или я совершенно не понимаю?

4 ответа

Вы могли бы сделать что-то вроде

@reboot sleep 60 && script.sh

хотя вы конкретно не упоминаете время загрузки. Вы также можете добавить сон в crontab.

Другой способ - создать службу systemd (примечание: в системах с установленной systemd)

      [Unit]
Description=cronjob with delay
After=(some criteria)

[Service]
Type=oneshot
ExecStart=/pathto/script.sh

[Install]
WantedBy=

возможно, вы неправильно поняли вопрос, он заключался в том, чтобы прервать задание, если оно не завершилось за x секунд. вы должны использовать .spec.activeDeadlineSeconds чтобы удовлетворить требование.

Вы можете запланировать запуск CronJob в определенную дату / время, а затем запускать его каждую минуту или в любом другом порядке. Есть мощный онлайн-инструмент, который может вам в этом помочь. Например:

      0 0/10 10/1 ? * * *

запланирует запуск вашего CronJob каждые 10 минут, начиная с 10 часов дня. Или:

      0 0/10 * ? * 6/1 *

запланирует запуск вашего CronJob каждые 10 минут, начиная с пятницы.

При использовании этого подхода важно помнить о часовом поясе, в котором работает ваш кластер:

Все CronJob schedule: время основано на часовом поясе kube-controller-manager.

Если ваша плоскость управления запускает kube-controller-manager в подах или пустых контейнерах, часовой пояс, установленный для контейнера kube-controller-manager, определяет часовой пояс, который использует контроллер задания cron.

Более подробную информацию / примеры планирования можно найти ниже:

ты мог бы сделать

      sleep "seconds"; echo " * * * * * command" >> path/to/crontab

Мне кажется, что вопрос сформулирован неправильно. Вероятно, это означало что-то вроде каждой минуты каждого субботнего дня.

       * * * * SAT

Или каждую минуту в течение нескольких часов

      * 9-17 * * *

https://crontab.guru/examples.html

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