Cron API: есть ли такая вещь?

есть ли такая вещь, как cron API?

Я имею в виду, есть ли программный способ добавления/удаления заданий cron, не наступая на пальцы Крона?

5 ответов


API cron UNIX - это файловая система. Есть crontab команда для установки / редактирования пользовательских crontabs. Основной причиной команды crontab является применение ограничений безопасности для пользователей (например, /etc/cron.allow и /etc/cron.deny).

Системные вкладки cron-это просто файлы, помещенные в /etc / cron.d (и cron.ежедневно/еженедельно/ежемесячно). Не требуется особого ухода; просто поместите файл на место. Цитировать вершине /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), но с полем пользователя прямо перед командой. Где пробел означает пробел (один или несколько) , а 0 и 7 означают воскресенье:

минуту пробел час пробел день-месяц помещения месяц пробел день-неделю пробел пользователей пробел команда

использование обычного доступа к файлу POSIX не наступит на пальцы cron. Помнить, переименовать всегда будет иметь целевое имя, указывающее на старый или новый файл, никогда ни на что. Таким образом, вы можете записать файл на новое имя, а затем переименовать его поверх старого.

многие языки программирования имеют API, чтобы помочь с написанием crontabs. Например, CPAN (Perl) имеет несколько.



вы можете определенно обернуть вокруг него. Вижу , когда рубиновый камень.


Если вы имеете в виду веб-API, мы создали REST API, который ваше веб-приложение может использовать для запуска обратных вызовов / webhooks. Проверьте 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" может быть реализован с помощью быстрого скрипта на любом языке, который вы предпочитаете, и "сна". :)