У меня есть это требование. Я пишу php-приложение, в котором мы можем загрузить wav-файл и запланировать его воспроизведение на некотором расширении звездочки.
То, что я делаю, похоже на загрузку файла и добавление записи в базу данных для имени файла, его местоположения и расписания. В то же время добавление записи cron в файл.
Для каждого загруженного файла я создаю отдельный файл cron, потому что если я хочу удалить одну запись cron из внешнего интерфейса, он должен удалить загруженный файл, связанный с ним cronfile и его запись в базе данных одним щелчком мыши.
У меня вопрос, как мы можем использовать эти cronfiles?
Могу ли я переместить файлы cron таким образом /var/spool/cron/crontabs/user/cronfile1
/var/spool/cron/crontabs/user/cronfile2
?
Я попробовал это, но получил ошибку в журнале cron:
(cronfile1.txt) ORPHAN (no passwd entry)
Это не прямой ответ на ваш вопрос о cron-файлах, но я думаю, что другой метод может быть проще.
Я бы просто добавил 1 cronfile, который запускается каждые x минут, что делает
Теперь вам нужно сохранить «расписание» в вашей базе данных, и все готово. Удаление не должно ничего менять в cronfile, потому что cronfile просто использует эту базу данных. Это самое простое и самое чистое решение.
Если наименьшее приращение, которое пользователь может установить, составляет каждые 30 минут, крону не нужно запускаться чаще, чем раз в 30 минут, но если он более точен, то вам может потребоваться запускать его чаще.
Других решений пока нет …