中可能存在crontab条目以外的内容
/etc/crontab
您只需要考虑包含实际CRON模式的行,如下所示:
import croniter
import datetime
import re
now = datetime.datetime.now()
def main():
f = open("/etc/crontab","r")
f1 = f.readlines()
for x in f1:
if not re.match('^[0-9*]', x):
continue
a = re.split(r'\s+', x)
cron = croniter.croniter(' '.join(a[:5]), now)
print("%s %s" % (cron.get_next(datetime.datetime), ' '.join(a[5:])))
if __name__ == "__main__":
main()
输出(您的将有所不同):
2018-12-02 15:17:00 root cd / && run-parts --report /etc/cron.hourly
2018-12-03 06:25:00 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
2018-12-09 06:47:00 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
2019-01-01 06:52:00 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )