Skip to content

Cron

A cron component which allows you to read and control cron tasks on remote systems.

Install

Require this package with composer using the following command:

$ composer require plinker/cron

Client

Creating a client instance is done as follows:

<?php
require 'vendor/autoload.php';

/**
 * Initialize plinker client.
 *
 * @param string $server - URL to server listener.
 * @param string $config - server secret, and/or a additional component data
 */
$client = new \Plinker\Core\Client(
    'http://example.com/server.php',
    [
        'secret' => 'a secret password',
        // optional
        'config' => [
            'journal' => './.plinker/crontab.journal',
            'apply'   => false
        ]
    ]
);

// or using global function, with optional array
$client = plinker_client('http://example.com/server.php', 'a secret password', [
    'config' => [
        'journal' => './.plinker/crontab.journal',
        'apply'   => false
    ]
]);

Component Config

Parameter Description Default
journal Path to journal file ./.plinker/crontab.journal
apply Apply crontab after each call, default is to only apply upon calling apply() method false

Methods

Once setup, you call the class though its namespace to its method.

User

Get current user, helps to debug which user the crontab is owned by.

Call

$result = $client->cron->user();

Response

www-data

Crontab

Get current crontab, equivalent to crontab -l.

Call

$result = $client->cron->crontab();

Response

# My Cron Task
0 * * * * cd ~
# \My Cron Task

Dump

Get current crontab journal. The journal is a file which gets built and then applied to the real crontab.

Call

$result = $client->cron->dump();

Response

# My Cron Task
0 * * * * cd ~
# \My Cron Task

Create

Create a crontask entry. Note one entry per key, multiple calls with same key would simply update.

Call

$result = $client->cron->create('My Cron Task', '* * * * * cd ~');

Response


Get

Get a crontask entry, also has an alias method read.

Call

$result = $client->cron->get('My Cron Task');

Response

0 * * * * cd ~

Update

Update cron task.

Call

$result = $client->cron->update('My Cron Task', '0 * * * * cd ~');

Response


Delete

Delete a cron task.

Call

$result = $client->cron->delete('My Cron Task');

Response


Drop

Drop cron task journal (delete all, but does not apply it).

Call

$result =  $client->cron->drop();

Response


Apply

Apply crontab journal to users crontab.

Call

$result = $client->cron->apply();

Response


Testing

There are no tests setup for this component.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please contact me via https://cherone.co.uk instead of using the issue tracker.

Credits

Development Encouragement

If you use this project and make money from it or want to show your appreciation, please feel free to make a donation https://www.paypal.me/lcherone, thanks.

Sponsors

Get your company or name listed throughout the documentation and on each github repository, contact me at https://cherone.co.uk for further details.

License

The MIT License (MIT). Please see License File for more information.

See the organisations page for additional components.