4 4 3 Beefalo:SEPuler - an event calendar
SEPuler – an event calendar
SEPuler is a process that controls the scheduling of all SEP sesam tasks, such as backup, migration, replication, restore and other tasks. It acts as an electronic calendar and assistant performing all SEP sesam data protection events.
SEPuler is a permanently active background routine (daemon), constantly searching for events to be executed. When SEPuler finds a scheduled task or manually triggered event, the execution of the corresponding program is initiated.
Once the event has started, SEPuler will determine the next execution event for a cyclical task and rewrite the event to the task calendar. For example, if SEPuler starts a weekly backup on January 1, it will schedule a new weekly backup to occur on January 8.
Backup, migration, replication, media event, command event, restore and newday are all types of SEPuler events.
Events initiated with the Immediate start command from the GUI or command line are posted in the calendar as non-recurring events.
All events in SEP sesam start from the SEPuler schedule, even if they are unique, non-recurring tasks. An overview of scheduled as well as completed, expired events and their current status is provided by Calendar sheet from the Main selection -> Scheduling -> Calendar Sheet.
Schedules are used for setting events to occur at a specific time. A schedule is a timetable that defines the cyclic behavior of an event, i.e., when the event is to take place and how frequently to repeat it. The fact that a schedule exists does not automatically mean that an event is executed.
Only when one or more events (backup, migration, command, etc.) are assigned to the schedule, it becomes active. The entries in the schedule are then picked up by the SEPuler. Modifying a schedule affects all the events assigned to that schedule.
Flexible scheduling features include the following:
- Any number of events of the same type can be linked to one or more schedules.
- A task (backup, migration, replication, media action, restore and command event) may have events in several schedules.
- Schedules provide User defined option that allows you to create a calendar which is customized according to your country or company specific requirements. You can use it to exclude scheduled jobs from running on specific dates, such as holidays, or to schedule additional jobs on selected dates. For details, see Creating Custom Calendar.
- A schedule's execution can be deactivated: a schedule will remain displayed as shaded (gray) in the list of schedules, but the related jobs will not run.
- The option Without Schedule is available, if you set the value for enable_gui_events_without_schedule in the Defaults window (Configuration -> Defaults -> Settings tab) to 1 manually. It shows all backup events which are not assigned to a schedule. Such events are typically created for external backups, where the external applications manage the backup scheduling. For details, see Schedules.
For complex event strategies, event priority is used by SEPuler for resolving scheduling conflicts. Priorities can be assigned to events, from lowest (1, default) to highest (99). For each SEP sesam backup day all scheduled events are checked according to their type and priority to see whether the events of the same type (for example, a backup) with the same task name and higher priority have already expired or are still planned to run; in the latter case, SEP sesam suppresses execution of lower priority events of the same type. In other words, if there are more equal events (see equality of events) of the same type scheduled on the same backup day, only the event with a higher priority is executed. This prevents the events that might be linked to several schedules, which overlap on certain days, to be executed except for the one with the highest priority.
If all equal events of the same type have the same priority (for example, the default – 1), then all of them are executed. Events with priority 0 are not checked for dependency of event priorities and are always executed.
Priorities can be used together with Blocking date option.
|Event priority determines which job in a queue will first be executed regardless of the equality of events. If there are jobs in the queue and a new event with a higher priority is activated by SEPuler, this job will first access a busy device.|
Equality of Events
The equality of events is managed according to their type:
- Backup events are equal if their task name is the same. The same is true for each individual event type: migration, replication, command and restore event.
- Media events are equal if their drive number or drive group number is the same.
Example In the following example, backup of the directory /etc of the client stratum1 with the task name stratum1_etc is started via three different schedules.
|Daily||8 p.m.||1||daily incremental|
|Weekly||6 p.m.||2||differential on the weekend|
|Monthly||9 p.m.||3||full at the end of the month|
- On weekends, the weekend event is performed instead of the daily event (prio 2 overrides prio 1).
- At the end of the month, the end of month event is performed instead of the daily event (prio 3 overrides prio 1).
- If the end of the month and the weekend coincide, then the end of month event is performed instead the Weekend event (prio 3 overrides prio 2).
A blocking event is any type of event with a higher priority that obstructs another event and prevents it from moving to active backup status. It may be used to prevent the activation of certain events on specific days (e.g., end of year, end of fiscal year, holidays, etc).
|* A blocking event is created by selecting the Blocking date checkbox during the configuration of an event.
A backup event that executes the task stratum1_etc is configured to run daily with priority 2. A second backup event for the same task stratum1_etc is only scheduled for December 24th every year as a blocking event with priority 9. On December 24th, the priority check detects the stratum1_etc backup with higher priority and overrides the execution of the daily backup. The blocking event itself does not create an entry in the job status, but sends a notification that it was activated.