我正在学习ruby,我正在试图弄清楚如何创建一个简单的脚本来执行以下操作:
在文本文件(crontab -l的输出)中列出cron作业列表,并计算它们在一年内执行的频率。
所以,假设我有以下cron工作:
21 23 * * * / some / cron / job / here
我知道这个cron作业每天晚上11:21执行。所以,我希望脚本告诉我一年中这个cron作业会运行多少次。我知道答案是365,但我不知道如何在ruby中做到这一点以获得相同的结果。
此外,它需要能够处理更复杂的 - 例如:
30 * / 2 * * * / another / cron / job / here
这个每天每隔一小时运行30分钟,所以我需要脚本能够告诉我一年内运行多少次。
感谢任何帮助。
答案 0 :(得分:0)
这是一个肮脏的答案,因为我只是假设你的问题很好地解释了整个事情,但你可能会这样做:
def rdcron(line)
(minutes, hours) = (line.scan(/^\S+ \S+/))[0] # complete the regex with the format of the line
if hours =~ /(.*)\/(\d+)/
num=$1; dem=$2;
num=1 if num == "\*"
hours = Rational(num,dem).to_f
end
#...cron format parsing blocks like the above continue here
minutes * hours # * ...
end