DESCRIPTION

uschedule is not cron and uschedule is not at - it does offer similar functionality, but is not intended to be a drop-in replacement. It works differently. It’s designed to be different.

The uschedule package contains a number of tools, described below, to manage the scheduling of jobs. The uscheduled daemon is run by supervise.

Definitions

A registered command defines what to run. A command may simply call a script or program somewhat, but may also be a complicated shell script. A command has an unique identifier (often simply called Job-ID or ID).
A uscheduled job defines when to run a command.

TOOLS

This section give an general outline of the tools. More specific information may be find in the manuals.

uscheduled

uscheduled(8) is the scheduler daemon. It sleeps in the background until some job has to be started.

uschedulecmd

uschedulecmd(1) is used to register a command and to give it an ID.

uschedule

uschedule(1) schedules a registered command for execution at a certain time or time pattern.

uschedulelist

uschedulelist(1) lists scheduled jobs or commands.

uschedulerm

uschedulerm(1) deletes scheduled jobs or commands. This is a front end to ‘rm’, nothing more.

uschedulecp

uschedulecp(1) copies a registered command.

uscheduleedit

uscheduleedit(1) is used to edit commands.

uscheduleconf

uscheduleconf(1) creates a schedule service. This is usually used by a system operator.

uscheduleruntimelimit

uscheduleruntimelimit(1) may be used to limit the run time of jobs.

FILE SYSTEM LAYOUT

Assuming that /etc/schedule-USER has been set up by the system administrator using uscheduleconf like this:

   uscheduleconf /etc/schedule-USER USER USER

then /etc/schedule-USER and ~USER/.uschedule will contain:

A `/etc/schedule-USER/run' script

This runs as root and is only writable for root. It changes to the users schedule directory (~USER/.uschedule by default) and then starts ~USER/.uschedule/run
This script is the place where the system administrator may enforce local policy, including resource limits.

A `/etc/schedule-USER/log/run' script

This runs as root and is only writable for root. It changes to the users schedule log directory (~USER/.uschedule/log by default) and then starts ~USER/.uschedule/log/run
This script is the second place where the system administrator may enforce local policy, including resource limits.

A `~USER/.uschedule/run' script

This reads a number of environment variables from .uschedule/env/ and starts the .uschedule daemon. The user may change this script as he pleases.

A `~USER/.uschedule/log/run' script

This starts the multilog process. By default logging goes into the log directory. The user may change this script as he pleases.

SECURITY

All processes run under the account of the user. The uschedule does not add any insecurity to the system, unless it has been misconfigured. By default the configuration is secure - unless you place uschedule service directories in insecure places.

EXAMPLES

Setting up a scheduling service for USER

As root:

   uscheduleconf /etc/schedule-USER USER USER
   ln -s /etc/schedule-USER /service

Setting up a command

to execute ~/bin/dosomething As user:

   uschedulecmd -i dosomething ~/bin/dosomething

Schedule it to run at 0800 and 1300

while not allowing the job at 0800 to start past 0930 and not allowing the job at 1300 to start past 1430.
As user do:

   uschedule --late 5400 dosomething ’*-*-* 08:00:00’
   uschedule --late 5400 dosomething ’*-*-* 13:00:00’

Schedule it to run at 0000 on every first day of the year

while allowing it to start up to 30 seconds late:

   uschedule --late 30 dosomething ’*-1-1 13:00:00’

AUTHOR

Uwe Ohse, uwe@ohse.de

SEE ALSO

uscheduled(8), uschedule(1), uschedulecmd(1), uschedulelist(1), uscheduleedit(1), uschedulecp(1), uschedulerm(1), uscheduleconf(1), uscheduleruntimelimit(1).