плагин ruby ​​/ gem для преобразования cron в читабельный формат - PullRequest
7 голосов
/ 21 апреля 2011

Существует ли рубиновый гем / плагин, который преобразует что-то вроде * / 10 * * * 1,3 в "Триггеры каждые 10 минут в понедельник, среду"?

Ответы [ 4 ]

3 голосов
/ 22 апреля 2011

Я ничего не знаю, и я тоже ничего не нашел с Google.Вы можете самостоятельно что-то взломать, хотя:

>> cron = "*/10 * * * 1,3 foo" 
#=> "*/10 * * * 1,3 foo"
>> min, hour, dom, month, dow, command = cron.split 
#=> ["*/10", "*", "*", "*", "1,3", "foo"]

Когда у вас есть переменные, вы можете начать собирать детали для вашего вывода:

>> require 'date' 
#=> true
>> dow.split(/,/).map { |day| Date::DAYNAMES[day.to_i] } 
#=> ["Monday", "Wednesday"]
>> min.start_with?('*') ? "every #{min.split('/')[1]} minutes" : "#{min} past" 
#=> "every 10 minutes"
>> min = '5' 
#=> "5"
>> min.start_with?('*') ? "every #{min.split('/')[1]} minutes" : "#{min} past" 
#=> "5 past"

Очевидно, это простонекоторые грубые идеи (например, вам может понадобиться регулярное выражение с группами захвата для разбора записи), но поскольку записи в crontab хорошо определены, не должно быть слишком сложно придумать что-то, что работает для большинства записей, которые выскорее всего, столкнуться.

1 голос
/ 31 октября 2015

Взгляните на Ruby Gem Cronex https://github.com/alpinweis/cronex

1 голос
/ 22 января 2014

Я написал для этого Ruby-гем, основываясь на Perl-скрипте Шона Бёрка:

https://github.com/pjungwir/cron2english

1 голос
/ 01 октября 2012
...