Есть ли такая вещь, как Cron API?
Я имею в виду, есть ли программный способ добавления/удаления заданий Cron без перехода на носки Cron?
Есть ли такая вещь, как Cron API?
Я имею в виду, есть ли программный способ добавления/удаления заданий Cron без перехода на носки Cron?
UNIX cron API - это файловая система. Существует команда crontab
для установки/редактирования пользовательских crontab. Основной причиной команды crontab является принудительное ограничение безопасности для пользователей (например, /etc/cron.allow
и /etc/cron.deny
).
Закладки cron cron - это просто файлы, помещенные в /etc/cron.d(и cron.daily/еженедельно/ежемесячно). Никакой особый уход не требуется; просто отбросьте файл на место. Чтобы процитировать верхнюю часть /etc/crontab
:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
Формат совпадает с пользовательским crontabs, задокументированным в crontab (5), но с полем пользователя прямо перед командой. Если SPACE означает пробел (один или несколько), и оба значения 0 и 7 означают воскресенье:
минута ПРОСТРАНСТВО час ПРОСТРАНСТВО день месяца ПРОСТРАНСТВА месяц ПРОСТРАНСТВО день недели ПРОБЕЛ КОСМИЧЕСКОЙ команды
Использование обычного доступа к файлам POSIX не будет наступать на носки cron. Помните, rename всегда будет иметь целевое имя, указывающее на старый или новый файл, ни в коем случае. Таким образом, вы можете записать файл в новое имя и затем переименовать его поверх старого.
Многие языки программирования имеют API-интерфейсы, помогающие писать crontab. Например, CPAN (Perl) имеет несколько параметров.
Augeas имеет модуль Cron.
Вы можете обязательно обернуть его. См. Whenever рубиновый камень.
Если вы обращаетесь к веб-интерфейсу API, мы создали API REST, который ваше веб-приложение может использовать для запуска callbacks/webhooks. Проверьте SaturnAPI Cron. Вы делаете HTTP-запросы для планирования, просмотра и удаления заданий. Ниже приведен пример планирования задания:
curl -X POST \
https://saturnapi.com/cron/jobs \
-H saturnapi-access-key:'YOUR_SATURNAPI_ACCESS_KEY' \
-d dateTimeUTC='2015:09:25 14:30' \
-d dateTimeFormat='YYYY:MM:DD HH:mm' \
-d callbackURL='https://your.verified.domain.com' \
Не так, хотя скриптирование модификации с использованием crontab не так уж сложно. Такого рода вещи (работая через текстовые инструменты, а не ожидая API уровня кода для системных объектов), действительно являются частью парадигмы Unix.
Альтернативно, довольно простой "cron API" можно реализовать с помощью быстрого script на любом языке, который вы предпочитаете, и "спящем".:)