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.
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.
This section give an general outline of the tools. More specific information may be find in the manuals.
uscheduled(8) is the scheduler daemon. It sleeps in the background until some job has to be started.
uschedulecmd(1) is used to register a command and to give it an ID.
uschedule(1) schedules a registered command for execution at a certain time or time pattern.
uschedulelist(1) lists scheduled jobs or commands.
uschedulerm(1) deletes scheduled jobs or commands. This is a front end to ‘rm’, nothing more.
uschedulecp(1) copies a registered command.
uscheduleedit(1) is used to edit commands.
uscheduleconf(1) creates a schedule service. This is usually used by a system operator.
uscheduleruntimelimit(1) may be used to limit the run time of jobs.
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:
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.
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.
This reads a number of environment variables from .uschedule/env/ and starts the .uschedule daemon. The user may change this script as he pleases.
This starts the multilog process. By default logging goes into the log directory. The user may change this script as he pleases.
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.
As root:
uscheduleconf /etc/schedule-USER USER USER ln -s /etc/schedule-USER /service
to execute ~/bin/dosomething As user:
uschedulecmd -i dosomething ~/bin/dosomething
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’
while allowing it to start up to 30 seconds late:
uschedule --late 30 dosomething ’*-1-1 13:00:00’
Uwe Ohse, uwe@ohse.de
uscheduled(8), uschedule(1), uschedulecmd(1), uschedulelist(1), uscheduleedit(1), uschedulecp(1), uschedulerm(1), uscheduleconf(1), uscheduleruntimelimit(1).