Читать и интерпретировать crontab с помощью Perl - PullRequest
0 голосов
/ 10 мая 2018

Я пишу программу на Perl, чтобы проверить, выполняются ли некоторые задачи резервного копирования системы из crontab.

Мне нужно прочитать crontab и интерпретировать, когда он должен был работать, чтобы проверить, было ли выполнено резервное копирование. Вот пример.

00 03 * * 6 system_backup.sh

Предположим, эта задача сгенерирует файл с именем system_backup_20180510.iso

Тогда моя идея заключалась в том, чтобы сохранить «желаемую дату» в var, а затем сравнить с этой датой в имени файла. Самая большая проблема заключается в том, как построить желаемую дату, заполнив поле дня месяца в crontab.

Что вы, ребята, можете предложить? Спасибо

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Реализовано расписание :: Cron :: События:

crontab -l | perl -MPOSIX=strftime -MSchedule::Cron::Events -lne '
    $cron = Schedule::Cron::Events->new($_);
    $prev = strftime("%F %T", $cron->previousEvent());
    print "$prev => ", $cron->commandLine();
'
0 голосов
/ 11 мая 2018

Обратите внимание на 5-е поле: оно работает только в субботу.

Вот что вы можете сделать с GNU date:

$ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...