Cronos
A PHP component for updating crontab
Install / Use
/learn @mybuilder/CronosREADME
Cronos
Easily configure cron through PHP.
If you use Symfony 4/5/6, you could use our cool bundle in order to configure your app jobs through fancy annotations!
Setup and Configuration
Require the library via composer:
composer require mybuilder/cronos
Usage
Build Cron
<?php
require 'vendor/autoload.php';
$cron = new MyBuilder\Cronos\Formatter\Cron;
$cron
->header()
->setPath('path')
->setHome('home')
->setMailto('test@example.com')
->setShell('shell')
->setContentType('text')
->setContentTransferEncoding('utf8')
->end()
->comment('Comment')
->job('/bin/bash command --env=dev')
->setMinute(1)
->setHour(2)
->setDayOfMonth(3)
->setMonth(4)
->setDayOfWeek(5)
->setStandardOutFile('log')
->appendStandardErrorToFile('error')
->end();
echo $cron->format();
That will print
MAILTO=test@example.com
HOME=home
SHELL=shell
LOGNAME=logName
CONTENT_TYPE=text
CONTENT_TRANSFER_ENCODING=utf8
#Comment
1 2 3 4 5 /bin/bash command --env=dev > log 2>> error
Updating Cron
<?php
require 'vendor/autoload.php';
use MyBuilder\Cronos\Formatter\Cron;
use MyBuilder\Cronos\Updater\CronUpdater;
$cron = new Cron;
// $cron configuration...
$cronUpdater = CronUpdater::createDefault();
$cronUpdater->replaceWith($cron);
Troubleshooting
- The current user must have a existing crontab file to use the updater, use
crontab -eto create one. - When a cron line is executed it is executed with the user that owns the crontab, but it will not execute any of the users default shell files so all paths etc need to be specified in the command called from the cron line.
- Your crontab will not be executed if you do not have usable shell in
/etc/passwd - If your jobs don't seem to be running, check the cron daemon is running, also check your username is in
/etc/cron.allowand not in/etc/cron.deny. - Environmental substitutions do not work, you cannot use things like
$PATH,$HOME, or~/sbin. - You cannot use
%in the command, if you need to use it, escape the command in backticks.
Created by MyBuilder - Check out our blog for more insight into this and other open-source projects we release.
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
