2009-09-24 3 views

ответ

8

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

Системные вкладки 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, документированных в кронтаб (5), но с полем пользователя прямо перед командой. Где ПРОСТРАНСТВО означает пробел (один или несколько) и 0 и 7 среднее воскресенье:

минут ПРОСТРАНСТВО час ПРОСТРАНСТВО день-месяц ПРОСТРАНСТВА месяц ПРОСТРАНСТВО день-неделю ПРОСТРАНСТВО пользователя ПРОСТРАНСТВО команда

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

Многие языки программирования имеют API-интерфейсы, которые могут помочь при написании crontab. Например, CPAN (Perl) has several.

+1

Так что, если я бросаю файл в /etc/cron.d/, он будет получать подобран хронами на следующей итерации никакого вреда? Мне не нужно проходить через кронтаб? – jldupont

+2

@ Жан-Лу Дюпон: Правильно. Вы можете просто отбросить файл в /etc/cron.d. – derobert

-2

Не так, хотя скриптирование модификации с использованием crontab не так уж сложно. Такого рода вещи (работая через текстовые инструменты, а не ожидая API уровня кода для системных объектов), действительно являются частью парадигмы Unix.

Альтернативно, довольно простой «cron API» может быть реализован с использованием быстрого скрипта на любом языке, который вы предпочитаете, и «сон». :)

0

Вы можете обязательно обернуть его. Посмотрите на драгоценный камень рубика Whenever.

0

В случае, если вы имеете в виду веб-интерфейс API, мы создали API REST, который может использовать ваше веб-приложение для активации callbacks/webhooks. Выезд SaturnAPI's 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' \ 
Смежные вопросы