cncopscheduler - cncop scheduler#

_images/cncopscheduler.png

Overview#

cncopscheduler is responsible for orchestrating the execution of periodic tasks and scheduled backup jobs. Schedules are specified using an enhanced cron syntax. The enhanced syntax supports an optional sixth field for seconds (see lib.cron for details).

cncopscheduler provides an interactive tcp services to administrators via the loopback interface. This interactive service can be used to query the status of jobs and examine upcoming schedules. It also supports on-demand backup job execution.

Periodic tasks#

There are several periodic tasks required of all systems that particpate perform backups, so called cncop devices. There are a few additional tasks required by cncop devices with the designated role of REMOTE (e.g. Healthy Servers)

The tasks common to all cncop devices are

Task

Description

Schedule

cncopgetprofile

Periodically download updated jobs from cncop network.

Hourly

cncopregistration

Submit device changes to the cncop network.

Once Daily

The cncopgetprofile and cncopregistration have their scheduled start-times randomized to spread out the number of simultaneous requests submitted to the cncop network. The randomization is calculated by cncopscheduler when it starts, but once selected, it stays in effect until the module is restarted.

Those tasks reserved to REMOTE devices are

Task

Description

Schedule

hsmaintenance

Healthy server maintenance tasks

Hourly

vscanagent

Virus scan healthy server backups

6am & 6pm

Interactive tcp sessions#

cncopscheduler listens on the loopback interface of the device for tcp requests submitted to a pre-arranged tcp port. The tcp port defaults to 59153. User’s can initiate an interactive session using telnet(1), e.g., telnet localhost 59153.

The interactive session provides several commands an administrator can use to query the status of the backup jobs, check on their schedules and request an on-demand backup job.

Commands are case insensitive, and with the exception of the SHUTDOWN command, each command can be abbreviated to it’s unique prefix. The full command list is

RUNJOB

Cause the execution of one or more jobs. Requires an additional parameter that specifies which job(s) to run. The parameter can be either a jobtitle, a jobid or -a to run all jobs. Multiple jobs can be run by space separing parameters.

SCHEDULES

cncopscheduler will respond with a formatted display of when tasks and jobs will run next.

DETAILS

cncopscheduler will respond with a list of those tasks or jobs that are currently running.

GETPROFILE

Causes the device to invoke cncopgetprofile and afterwards to refresh it’s running job schedules.

REREGISTER

Causes the device to invoke cncopgetprofile and afterwards resynchronize it’s cncop assigned role and then refresh it’s running job schedules.

STOPSERVER

This will cause cncopscheduler to shut down all running tasks and jobs and unload itself. No further tasks or jobs will be run until the program is restarted. To remove ambiguity this command may not be abbreviated.

QUIT

Close the tcp session

HELP

Display a help summary.

Override tcp sessions port#

An administrator can override the default tcp port by changing the scheduler_port setting in the [defaults] section of the Config/cncop3.ini file. Changes will be read on the next restart of cncopscheduler.

Command line options#

usage: cncopscheduler  [-?] [-d] [-c CONFIG]

Optional argument:#

?, -h, --help#

Display help and exit

-d, --debug#

Generate diagnotic logging.

-c CONFIG, --config CONFIG#

Alternate configuration file.