首页 > 解决方案 > 用 Perl 阅读和解释 crontab

问题描述

我正在编写一个 Perl 程序来检查并确保某些系统备份任务是从 crontab 执行的。

我需要阅读 crontab 并解释它应该何时运行,以检查该备份是否已完成。这是一个例子。

00 03 * * 6 system_backup.sh

假设这个任务将生成一个名为system_backup_20180510.iso

然后我的想法是将“理想日期”存储到 var 中,然后与文件名中的该日期进行比较。最大的问题是如何在 crontab 的日期字段填满的情况下构建理想的日期。

大家有什么可以推荐的?谢谢

标签: perldatecron

解决方案


注意第 5 个字段:这只在星期六运行。

以下是您可以使用 GNU 日期执行的操作:

$ date -d "-1 week saturday 03:00" "+%Y%m%d %H:%M:%S"
20180505 03:00:00

$ date -d "-w week saturday 03:00" "+%Y%m%d %H:%M:%S"
20180518 13:00:00

$ date -d "-2 week saturday 03:00" "+%Y%m%d %H:%M:%S"
20180428 03:00:00

推荐阅读