ruby 插件/gem 将 cron 转换为人类可读的格式

发布于 2024-11-02 10:23:34 字数 72 浏览 4 评论 0原文

是否有一个 ruby​​ gem/插件可以将 */10 * * * 1,3 之类的内容转换为“周一、周三每 10 分钟触发一次”?

Is there a ruby gem/plugin which will convert something like */10 * * * 1,3 to "Triggers every 10 minutes on Monday, Wednesday" ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

以往的大感动 2024-11-09 10:23:34

我什么都不知道,我也没有通过谷歌找到任何东西。不过,您也许可以自己将一些东西组合在一起:

>> 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 条目已明确指定,因此想出适用于您可能遇到的大多数条目的内容应该不会太难。

There's nothing I know of and I also didn't find anything with Google. You may be able to hack something together on your own though:

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

Once you have the vars, you can start assembling the parts for your output:

>> 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"

Obviously that's just some rough ideas (for example you may want a regex with capture groups for parsing the entry), but since the crontab entries are well specified, it shouldn't be too hard to come up with something that works for most of the entries you are likely to encounter.

暮光沉寂 2024-11-09 10:23:34

我基于 Sean Burke 的 Perl 脚本编写了一个 Ruby gem 来执行此操作:

https://github.com/pjungwir/cron2english

I wrote a Ruby gem to do this, based on Sean Burke's Perl script:

https://github.com/pjungwir/cron2english

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文